Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: inserting HTML file in a PERL script

by kyoshu (Curate)
on May 31, 2005 at 07:15 UTC ( [id://461953] : note . print w/replies, xml ) Need Help??

in reply to inserting HTML file in a PERL script

why don't you just create a html template and
use HTML::Template;

example of perl sciript:

#!/usr/bin/perl -wT
use strict;
use CGI;
use HTML::Template;
use CGI::Carp qw/fatalsToBrowser/;

my $default_puslapis = 'pradzia';
my $default_sritis = 'pagrindinis';
my $templ = 'data/pagrindinis/main.html';

my $q = new CGI;
if (grep { /application\/xhtml\+xml/ } $q->Accept ) {
        print "Content-type: application/xhtml+xml\n\n";
} else {
        print "Content-type: text/html;Charset=utf-8\n\n";
my $tmpl = HTML::Template->new(filename => $templ);
my $puslapis = $q->param('puslapis') || $default_puslapis;
$puslapis =~ /(\w+)/;
$puslapis = $1;
my $sritis = $q->param('sritis') || $default_sritis;
$sritis =~ /(\w+)/;
$sritis = $1;

if (-e "data/$sritis/$puslapis.html") {
        undef local $/;
        open my $f, "<data/$sritis/$puslapis.html";
        my $content = <$f>;
        close $f;
        $tmpl->param('tekstas', $content);
} else {
        $tmpl->param('tekstas', 'Klaida!');

and then you create 'data/pagrindinis/main.html'
where in html code you just add something like:
<TMPL_VAR NAME="tekstas">
in the place where you want $content to appear.

(all this code is from working example with some changes for you to see :-))