| [reply] |
And, for later, HTML Tables - populating TD from an array might be useful...
map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2
-$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
Tom Melly, pm@tomandlu.co.uk
| [reply] [d/l] |
first I would advise to take a look at the (current) CPAN docs for CGI. You might find particularly useful the "CREATING STANDARD HTML ELEMENTS" section, as it provides this example:
print table({-border=>undef},
caption('When Should You Eat Your Vegetables?'),
Tr({-align=>CENTER,-valign=>TOP},
[
th(['Vegetable', 'Breakfast','Lunch','Dinner']),
td(['Tomatoes' , 'no', 'yes', 'yes']),
td(['Broccoli' , 'no', 'no', 'yes']),
td(['Onions' , 'yes','yes', 'yes'])
]
)
);
Update: A much better monk already beat me to the punch, and with a more detailed response to boot :)
__________ The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.
- Terry Pratchett
| [reply] [d/l] |
| [reply] |
One thing I've done a few times (when not using Mason (or recently, other not-Perl not-CGI mechanisms)) is to let the TT source ride along after the __END__ marker of the CGI's source. Then you just my $tmpl_text = do { local $/; <DATA> }; to slurp it in before handing it to $tmpl->process( \$tmpl_text );
You could also get fancy with Inline::File and store separate templates after separate markers, but at that point you're probably approaching being better off storing them elsewhere as separate files.
| [reply] [d/l] [select] |
The CGI::Ex::App framework which I use allows you to either return a file name or a reference to a scalar containing the template. It then passes the value along to CGI::Ex::Template which is Template Toolkit compatible and will process either a filename or a reference to a scalar.
This allows for easy prototyping in a single file, and then the capability to move items out to separate files later.
sub main_file_print { 'my_content/my_script/main.html' }
sub otherstep_file_print {
return \ qq{<html>
My template follows here.
</html>
};
}
my @a=qw(random brilliant braindead); print $a[rand(@a)];
| [reply] [d/l] |