in reply to Web page template for an HTTP daemon script
In the end, I did the most obviuous thing: wrote an html file with tags in it, and substituted values with s///. Thanks a lot, larsen. How is it that I didn't think it myself?
The template:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- page template for sshttpd.pl --> <!-- $Id: form.html,v 1.1 2003/08/13 15:53:42 bronto Exp $ --> <html> <head> <title>_SERVICE_NAME_ controls</title> </head> <body> <h1 align="center">_SERVICE_NAME_ controls</h1> <div align="center"> <table style="border-width: 2px ; border-style: solid"> <tr align="center"> <td> <form action="/start" method="post"> <input type="submit" value=" Start " > </form> </td> <td> <form action="/stop" method="post"> <input type="submit" value=" Stop " > </form> </td> <td> <form action="/restart" method="post"> <input type="submit" value=" Restart " > </form> </td> </tr> <tr align="center"> <td colspan="3"> <form action="/status" method="post"> <input type="submit" value=" Update status " > </form> </td> <tr> <tr> <td colspan="3" align="center">_MESSAGE_</td> <tr> <tr> <td colspan="3">Status: _SERVICE_NAME_ is _STATUS_</td> <tr> </table> </div> </body> </html>
The subroutine:
sub show_form { my $c = shift ; my $status = status() ; my $message = get_message() ; my $page ; my %subst = ( _SERVICE_NAME_ => $service_name, _MESSAGE_ => $message, _STATUS_ => $status ) ; my $th = IO::File->new ; die "FATAL: Cannot open template file $template: $!" unless $th->open($template,'r') ; foreach my $line ($th->getlines) { $line =~ s/(_[A-Z_]+_)/$subst{$1}/g ; $page .= $line ; } $th->close ; reset_message ; my $resp = HTTP::Response->new ; $resp->content($page) ; $c->send_response($resp) ; }
The very nature of Perl to be like natural language--inconsistant and full of dwim and special cases--makes it impossible to know it all without simply memorizing the documentation (which is not complete or totally correct anyway).
--John M. Dlugosz
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
2Re: Web page template for an HTTP daemon script
by jeffa (Bishop) on Aug 14, 2003 at 02:47 UTC | |
by bronto (Priest) on Aug 14, 2003 at 08:26 UTC |