Undefined is a valid return value for a method, but when DEBUG_UNDEF is 
set, the current implementation of Template::Stash::_dotop dies with 
'foo is undefined' if a method call returns undefined OR if the method 
doesn't exist.

The patch separates the nonexistant method and undefined value cases, 
and only dies on the nonexistant method case.


Short example:

Object something like this:

        package Foo;

        sub getUndef {
                return undef;
        }


If we pass a foo to a template, and do:

        [% IF foo.getUndef %]Hello world![% END %]

We would expect that the method call to evaluate to a false value, 
rather than die, since it's a valid method.


The patch is only for the perl version of Template::Stash (my C is a bit 
rusty). I'll try to have a similar patch for the xs version soon, but I 
thought I'd post this first and see what people thought of it.

-- 
Keith Barrette
The Conference Exchange

_______________________________________________
templates mailing list
[email protected]
http://mail.template-toolkit.org/mailman/listinfo/templates

Reply via email to