note
naikonta
<blockquote><i></i></blockquote>
(Update, per [haoess] below) <strike>First of all, the <c>DATA</c> filehandle begins after the <c>__DATA__</c> token, not <c>__END__</c></strike>.
Here's one example to do it.
<code>
$ 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
</code>
Actually, you can also use the scalarref or arrayref options with DATA, such as,
<code>
my $template = load_page([<DATA>]);
sub load_page {
my $stuff = shift;
HTML::Template->new(arrayref => $stuff);
}
</code>
Or,
<code>
local $/ = undef;
my $template = load_page(\<DATA>);
sub load_page {
my $stuff = shift;
HTML::Template->new(scalarref => $stuff);
}
</code>
<div class="pmsig"><div class="pmsig-607636">
<hr size="1" noshade="1">
<p align="right"><small>
<i>Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!</i></small></p>
</div></div>
651848
651848