> Is there a way to have the perl undef value returned for undefined
> variables when using Template::Stash::XS?

This doesn't answer the particular question, but it may add more fodder to the 
fire.

CGI::Ex::Template has two methods that can be overridden - undefined_get and 
undefined_any.  undefined_get is called if a variable or expression is 
undefined during a GET directive.  undefined_any is called anytime a variable 
is requested and operates more closely to what Template::Stash::undefined 
does.

The benefit of having these two methods is that you can do:

sub undefined_any { undef }
sub undefined_get { '' }

And then it is easy to see if anything was actually undefined when variables 
are passed to other functions - but still get an empty string when swapped 
into a template.

You could also do:

sub undefined_get {
   my $self = shift;
   my $id   = shift;

   return 'Id: '.Data::Dumper::Dumper($id).' was not defined';
}

And things like:

[% foo || bar %]

Would correctly work, but calling

[% foo %]

Would swap in a big message if foo wasn't defined.

Again - this isn't an answer, just more ideas for how to extend Stash.

Paul

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

Reply via email to