in reply to Unused variable in HTML::Template results in blank screen

Ummm...

#!/usr/bin/perl -w use HTML::Template; my $temp = q|<TMPL_VAR name="mouth"><nothing-\|-bob><TMPL_VAR name="bo +b">|; $template = HTML::Template->new(scalarref => \$temp); $template->param(bob=>"bob"); print $template->output; __DATA__ <nothing-|-bob>bob

You don't actually need to set the parameter as it will be regarded as '' if it's undefined. Try seeing how the parse stack is actually breaking up your code. To do this, try the following:

#!/usr/bin/perl -w use HTML::Template; use Data::Dumper; my $template = HTML::Template->new(filename => $f_name,debug=>1); print Dumper($template);

This should provide you with a play-by-play parsing of the template. Furthermore, if you don't want something displayed, why use comments? Why not just use TMPL_COND to check whether or not the variable is set? Example:

#!/usr/bin/perl -w use HTML::Template; my $temp = q|<TMPL_IF bob>something and <TMPL_VAR bob> <TMPL_ELSE>bob failed</TMPL_IF> <TMPL_IF joe>not displayed<TMPL_ELSE>joe failed</TMPL_IF> <TMPL_IF jim>not displayed either because 0 is false <TMPL_ELSE>jim failed</TMPL_IF>|; my $template = HTML::Template->new(scalarref=>\$temp); $template->param(bob=>"bob",jim=>0); print $template->output; __DATA__ something and bob joe failed jim failed

Finally, what HTML is the template producing? Any unclosed comments that may have just been a copy and paste error? This has happened to me before as well. Hope this helps.

antirice    
The first rule of Perl club is - use Perl
The
ith rule of Perl club is - follow rule i - 1 for i > 1