in reply to displaying html file in the browser using perl
So you have aa.html which contains:
<html><body> <p>before</p> <include file ="hh.html"> <p>after</p> </body></html>
Then a cgi that reads this file and:
#!/usr/bin/perl use CGI; #my $q = CGI->new; print CGI::header(); my $file_to_read = 'aa.html'; my $html =read_file($file_to_read); $html=~s/<\s*include\s+file\s*=\s*"([^"]+)"\s*>/&add_template($1)/gexi +; print $html; sub add_template{ use File::Slurp qw/read_file/; return read_file($_[0]); }
The important part is the regexp, that basically is:
$html =~ s/<include file="([^"]+)">/&add_template($1)/gexi
It will find the include file template syntax, and replace the found expression with the content of the file...
note: You need to add exception stuff like:
if(!-f $_[0]){ return "Could not include template '$_[0]' because: NO FILE" }elsif(!-r $_[0]){ return "Could not include template '$_[0]' because: NO ACCESS TO FILE +"; }
Also writing "print CGI::header();" is bad form, try to stick to styles like:
|
|---|