You really should look into Templating Solutions. Here are
two for your amusement:
- Template:
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;
use LWP::Simple;
use Template;
my $cgi = CGI->new;
print $cgi->header;
my $source;
if ($cgi->param('fetch')) {
$source = LWP::Simple::get($cgi->param('url'));
}
my $template = Template->new({
INCLUDE_PATH => '/usr/local/tt2/templates'
});
$template->process(\*DATA, {cgi => $cgi, source => $source});
__DATA__
[% WRAPPER html/page html.head.title = 'view source' %]
<form method="POST">
Enter URL: [% cgi.textfield('url') %]
<p>[% cgi.submit('fetch') %]</p>
</form>
[% IF source %]
<hr/>
<pre>[% FILTER html %][% source %][% END %]</pre>
<hr/>
[% END %]
[% END %]
- HTML::Template:
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;
use LWP::Simple;
use HTML::Template;
my $cgi = CGI->new;
my $template = HTML::Template->new(
filehandle => \*DATA,
associate => $cgi,
);
if ($cgi->param('fetch')) {
$template->param(source => LWP::Simple::get($cgi->param('url')));
}
print $cgi->header, $template->output;
__DATA__
<html>
<head>
<title>view source</title>
</head>
<body>
<form method="POST">
Enter URL: <input type="text" name="url"/>
<p><input type="submit" name="fetch" value="fetch"/></p>
</form>
<tmpl_if source>
<hr/>
<pre><tmpl_var name="source" escape="HTML"></pre>
<hr/>
</tmpl_if>
</body>
</html>
Feel free to ask questions about these modules, they are
designed to make your life easier - but you don't appreciate
that up front. ;)
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)