Author image Sanko Robinson


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


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 %}


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 Also

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


Sanko Robinson <> -

The original Liquid template system was developed by jadedPixel ( and Tobias Lütke (

License and Legal

Copyright (C) 2009-2012 by Sanko Robinson <>



1 POD Error

The following errors were encountered while parsing the POD:

Around line 119:

Non-ASCII character seen before =encoding in 'Lütke'. Assuming UTF-8