http://www.perlmonks.org?node_id=801383

redgreen has asked for the wisdom of the Perl Monks concerning the following question:

Something in my data has changed, but I'm not sure what, or where to look. I am getting this error from the $tt->process call:

undef error - Usage: Template::Stash::XS::set(root, ident, value, ...) + at (eval 86) line 3.

Can some monk knowledgeable with TT offer some insight into what this means, and where I should start looking?

Replies are listed 'Best First'.
Re: Toolkit Template undef error debugging
by moritz (Cardinal) on Oct 15, 2009 at 16:43 UTC
    Something in my data has changed, but I'm not sure what, or where to look.

    The obvious place to look is your revision control system. It allows you to go back to previous versions, and compare differences.

    If you don't use one, start using one now - it's a very useful debugging tool, takes the fear of breaking stuff when you change things, and is also otherwise generally useful.

    Perl 6 - links to (nearly) everything that is Perl 6.

      Indeed, I learned early to use a revision control system. The code itself hasn't changed, but there was something odd with this one set of data.

      As it turns out, it was a faulty assumption. I assumed that the resident state data would be present. When it wasn't, $stash->set( 'resident', undef ) occurred inside the [% PERL %] block, giving me my strange error. I'm a little disappointed that TT didn't give me a better error message as to where this was happening.