Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Calling functions in middle of CGI HTML declarations

by GrandFather (Cardinal)
on Aug 26, 2012 at 22:44 UTC ( #989886=note: print w/ replies, xml ) Need Help??


in reply to Calling functions in middle of CGI HTML declarations

As Mr. Muskrat suggests you really should consider using a templating system. I recommend HTML::Template is a fairly easy entry point for this sort of task. Consider:

#!/usr/bin/perl use strict; use warnings; use HTML::Template qw(); use CGI qw(); my $fName = 'sample.html'; open my $temp, '>', $fName or die "Can't create $fName: $!\n"; print $temp <<'HTML'; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-U +S"> <head> <title><TMPL_VAR name="title"></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-88 +59-1" /> </head> <body> <div id="<TMPL_VAR name="divname">"> <TMPL_LOOP name="divs"> <div><TMPL_VAR name="div"></div> </TMPL_LOOP></div> </body> </html> HTML close $temp; my $tmpl = HTML::Template->new(filename => $fName); my @fields = qw(Hello Goodbye Friend Adios Amigo); my @loopParams = map {{div => $_}} @fields; print CGI::header(); $tmpl->param(title => "testme"); $tmpl->param(divname => 'div-test'); $tmpl->param(divs => \@loopParams); print $tmpl->output();

Prints:

Content-Type: text/html; charset=ISO-8859-1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-U +S"> <head> <title>testme</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-88 +59-1" /> </head> <body> <div id="div-test"> <div>Hello</div> <div>Goodbye</div> <div>Friend</div> <div>Adios</div> <div>Amigo</div> </div> </body> </html>
True laziness is hard work


Comment on Re: Calling functions in middle of CGI HTML declarations
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989886]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2014-10-25 19:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (148 votes), past polls