On Mon, 09 Apr 2012 17:03:13 -0400
Uri Guttman <u...@stemsystems.com> wrote:

> On 04/09/2012 02:28 PM, Manfred Lotz wrote:
> > Hi all,
> > Let's say I use Template:Toolkit like this:
> >
> > <-----------------snip------------------->
> > #! /usr/bin/perl
> >
> > use strict;
> > use warnings;
> >
> > use Template;
> >
> > my $variables = { nrme =>  "Manfred", };
> >
> > my $cmd = 'Hi [% name %], how are you.';
> >
> > my $template = Template->new();
> >
> > $template->process(\$cmd, $variables)
> >    or die $template->error(), "\n";
> > <-----------------snap------------------->
> >
> > and accidentally I have a typo in $variables (nrme instead of name).
> > The output is: Hi , how are you.
> >
> > IMHO, this is really bad. I would like to get an error saying that a
> > variable could not be substituted.
> 
> even if it were possible, i don't think it makes much sense. in many 
> cases you will fill up a hash (or hash tree) with more data than is
> used in the template. this is an easy way to handle different
> templates with a common set of data. so many values (not variables)
> may go unused. and if there is a tree, not a single level hash, some
> tags could be the same name but at different levels. and some may be
> used and some ignored. so even your regex checker (in a followup
> post) can't handle that.
> 
> now the opposite is possible. showing which template tags are not
> found in the data. most templaters will replace that with a null
> string. it should be easy enough to add an option to let the undef
> value generate a warning or the template code could do that for you.
> the problem there is correlating the tag in the template with the
> proper slot in the data tree. so it may be possible but annoying. it
> is better to just eyeball the two things and fix any problems. this
> is also why using template components and include files is a win. you
> can test smaller data trees on an include file and fix typos easily.

I do not agree. Then I could argue why using  
   use strict 'vars';
because I could eyeball undefined variables easily. 


-- 
Manfred







-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to