Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
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 surveying the Monastery: (6)
As of 2015-07-30 10:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls