-----Original Message-----
From: Dan Anderson [mailto:[EMAIL PROTECTED]
Sent: Wednesday, January 21, 2004 2:30 PM
To: Andrew Gaffney
Cc: R. Bryant; [EMAIL PROTECTED]
Subject: Re: CGI.pm *with* a templating system?
On Wed, 2004-01-21 at 01:45, Andrew Gaffney wrote:
> Dan Anderson wrote:
> > On Tue, 2004-01-13 at 16:05, R. Bryant wrote:
> >
> >>Hi List,
> >>
> >>Is it possible to use CGI.pm in conjunction with a templating
> >>system?
> >
> >
> > Whenever you send out anything from your CGI object you'll do
> > something like this, correct?
> >
> > my $cgi = CGI->new;
> > print $cgi->header;
> >
> > Well you're *printing* anything you send out. So if you wanted to
> > insert something between something else you would just print it.
> >
> > However, I'm not quite sure this response is exactly what you're
> > looking for. I don't know of any templating systems off the top of
> > my head that allow you to read in some template file and spit out
> > some data. However, I would assume it would not be too hard to
> > implement.
>
> Back when I was writing CGI in C (my pre-Perl days), I would create an
> HTML file that
> contained %s, %d, etc. in place of where values should go. I would
then read in the file
> to a variable. I would do something like:
>
> printf($file_that_i_read, value1, value2, value3, value4, value5,
> value6);
>
> which worked fairly well. The only problem was that I had to
> create/edit the HTML
> templated by hand because any HTML editor would try to escape my '%s'
and '%d'. Of course,
> since I write my HTML by hand anyway, that's not really a problem ;)
>Perl's substitution regular expressions work great for that. I often
use HTML templates where in a section for a table I'll put something
>like:
>##PUT#DATA#HERE##
>And regular expression s[##PUT#DATA#HERE##][$foo] where foo is what I'm
putting in works wonderfully.
>-Dan
In my HTML files I use [NAME] for the items I want to replace, then use
regular expressions to replace the tags. Code looks like this:
Open(INF, "filename.html");
@my_web_page = <INF>;
Close(INF);
Foreach $line(@my_web_page)
{
$line =~ s/\[NAME\]/ $what_i_want_to_replace_it_with /g;
}
Print "@my_web_page";
Does the job just fine.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.564 / Virus Database: 356 - Release Date: 1/19/2004
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.564 / Virus Database: 356 - Release Date: 1/19/2004
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>