(Update, per
haoess below)
First of all, the DATA filehandle begins after the __DATA__ token, not __END__.
Here's one example to do it.
$ cat /tmp/html-data.pl
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
use File::Basename;
my($script, $path) = fileparse($0);
# the use of load_page() is intentional
my $template = load_page(\*DATA);
$template->param(
script => $script,
path => $path,
pid => $$,
);
print $template->output;
sub load_page {
my $fh = shift;
HTML::Template->new(filehandle => $fh);
}
__DATA__
Hi, I'm script <tmpl_var name=script>,
located at <tmpl_var name=path>
running with process id <tmpl_var name=pid>
$ perl /tmp/html-data.pl
Hi, I'm script html-data.pl,
located at /tmp/
running with process id 4291
Actually, you can also use the scalarref or arrayref options with DATA, such as,
my $template = load_page([<DATA>]);
sub load_page {
my $stuff = shift;
HTML::Template->new(arrayref => $stuff);
}
Or,
local $/ = undef;
my $template = load_page(\<DATA>);
sub load_page {
my $stuff = shift;
HTML::Template->new(scalarref => $stuff);
}
Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.