search.cpan.org is shutting down
Sanko Robinson > Solution-v0.9.1 > Solution::Tag::If
Module Version: v0.9.1

# NAME

Solution::Tag::If - Basic If/Elsif/Else Construct

# Description

If I need to describe if/else to you... Oy. `if` executes the statement once if and only if the condition is true. If the condition is false, the first `elseif` condition is evaluated. If that is also false it continues in the same pattern until we find a true condition or a fallback `else` tag.

## Compound Inequalities

Solution supports compund inequalities. Try these...

```    {% if some.value == 3 and some.string contains 'find me' %}
Wow! It's a match...
{% elseif some.value == 4 or 3 < some.value %}
Wow! It's a... different... match...
{% endif %}```

# Bugs

Liquid's (and by extension Solution's) treatment of compound inequalities is broken. For example...

`    {% if 'This and that' contains 'that' and 1 == 3 %}`

...would be parsed as if it were...

`    if ( "'This" && ( "that'" =~ m[and] ) ) { ...`

...but it should look like...

`    if ( ( 'This and that' =~ m[that]) && ( 1 == 3 ) ) { ...`

It's just... not pretty but I'll work on it. The actual problem is in Solution::Block if you feel like lending a hand. Wink, wink.

See Solution::Condition for a list of supported inequalities.

# Author

Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

The original Liquid template system was developed by jadedPixel (http://jadedpixel.com/) and Tobias Lütke (http://blog.leetsoft.com/).