HTML::Template::FAQ(3) User Contributed Perl Documentation NAME HTML::Template::FAQ - Frequently Asked Questions about HTML::Template SYNOPSIS In the interest of greater understanding I've started a FAQ section of the perldocs. Please look in here before you send me email. FREQUENTLY ASKED QUESTIONS Is there a place to go to discuss HTML::Template and/or get help? There's a mailing-list for discussing HTML::Template at html-template-users@lists.sourceforge.net. Join at: http://lists.sourceforge.net/lists/listinfo/html-template-users If you just want to get email when new releases are available you can join the announcements mailing-list here: http://lists.sourceforge.net/lists/listinfo/html-template-announce Is there a searchable archive for the mailing-list? Yes, you can find an archive of the SourceForge list here: http://dir.gmane.org/gmane.comp.lang.perl.modules.html-template I want support for ! How about it? Maybe. I definitely encourage people to discuss their ideas for HTML::Template on the mailing list. Please be ready to explain to me how the new tag fits in with HTML::Template's mission to provide a fast, lightweight system for using HTML templates. NOTE: Offering to program said addition and provide it in the form of a patch to the most recent version of HTML::Template will definitely have a softening effect on potential opponents! I found a bug, can you fix it? That depends. Did you send me the VERSION of HTML::Template, a test script and a test template? If so, then almost certainly. If you're feeling really adventurous, HTML::Template is publicly available on GitHub (https://github.com/mpeters/html-template). Please feel free to fork it and send me a pull request with any changes you have. s from the main template aren't working inside a ! Why? This is the intended behavior. "" introduces a separate scope for "s" much like a subroutine call in Perl introduces a separate scope for "my" variables. If you want your ""s to be global you can set the "global_vars" option when you call new(). See above for documentation of the "global_vars" new() option. How can I pre-load my templates using cache-mode and mod_perl? Add something like this to your startup.pl: use HTML::Template; use File::Find; print STDERR "Pre-loading HTML Templates...\n"; find( sub { return unless /\.tmpl$/; HTML::Template->new( filename => "$File::Find::dir/$_", cache => 1, ); }, '/path/to/templates', '/another/path/to/templates/' ); Note that you'll need to modify the "return unless" line to specify the extension you use for your template files - I use .tmpl, as you can see. You'll also need to specify the path to your template files. One potential problem: the /path/to/templates/ must be EXACTLY the same path you use when you call "HTML::Template->new()". Otherwise the cache won't know they're the same file and will load a new copy - instead getting a speed increase, you'll double your memory usage. To find out if this is happening set "cache_debug =" 1> in your application code and look for "CACHE MISS" messages in the logs. What characters are allowed in TMPL_* names? Numbers, letters, '.', '/', '+', '-' and '_'. How can I execute a program from inside my template? Short answer: you can't. Longer answer: you shouldn't since this violates the fundamental concept behind HTML::Template - that design and code should be separate. But, inevitably some people still want to do it. If that describes you then you should take a look at HTML::Template::Expr. Using HTML::Template::Expr it should be easy to write a run_program() function. Then you can do awful stuff like: Just, please, don't tell me about it. I'm feeling guilty enough just for writing HTML::Template::Expr in the first place. What's the best way to create a " element entirely inside the template. What you end up with is a rat's nest of loops and conditionals. Alternately you can give up a certain amount of flexibility in return for vastly simplifying your templates. I generally choose the latter. Another option is to investigate HTML::FillInForm which some have reported success using to solve this problem. perl v5.38.0 2023-07-25 HTML::Template::FAQ(3)