Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: inserting HTML file in a PERL script

by kyoshu (Curate)
on May 31, 2005 at 07:15 UTC ( #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 :-))


Comment on Re: inserting HTML file in a PERL script

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://461953]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (9)
As of 2014-12-22 01:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (110 votes), past polls