Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: html template in a perl script

by jdtoronto (Prior)
on Sep 21, 2003 at 03:26 UTC ( [id://292959]=note: print w/replies, xml ) Need Help??


in reply to html template in a perl script

Well, as graff says, if ti works for you why not. Sure CGI generated HTML isn't so clever, not nowadays anyway. But of course CGI.pm has been around for a long time!!

The idea of using HTML::Template to separate the Perl and the HTML makes sense. Programmers work on the Perl, designers work on the HTML. If you are the only one working on what are Perl scripts with a 1:1 Perl/HTML doc relationship then fine.

Although I have used this trick for very simple scripts I find it a dangerous concept for general purpose use at it 're-integrates' the Perl and HTML, albeit in a more maintainable form than using CGI.pm or just using HERE documents.

jdtoronto

Replies are listed 'Best First'.
Re: Re: html template in a perl script
by thens (Scribe) on Sep 21, 2003 at 11:53 UTC

    Although I have used this trick for very simple scripts I find it a dangerous concept for general purpose use at it 're-integrates' the Perl and HTML, albeit in a more maintainable form than using CGI.pm or just using HERE documents.

    What does that mean ? I dont know how separating code and html will be dangerous.

    I have successfully used templates for my smaller scripts. There has been times when I had to dump a concise text report or a long html report. I could do that by just switching the templates, without the core part of the script having to bother what kind of report we are going to generate. I thought templates are a boon when doing that. There is also an article in The Perl Review Separating Code, Presentation, and Configuration that deals with this in detail.

    -T

      I can't speak for jdtoronto, but i am pretty sure that he was talking about keeping the HTML and Perl seperate, but in the same text file - i.e., put the template in the DATA section. I agree that this is nice for small quickies, but for anything serious, you should go ahead a seperate the code and template into two (or more) text files.

      So then the question is (again) - why not put the code and template in the same text file? Because you will most likely end up having to seperate them in the long run when scalability rears it's ugly head. (please see 3Re: HTML::Template - complex sites for a technique for dealing with a more complex template structure.)

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)
      
        You got me!

        I should perhaps explain that some time back I 'inherited' an application of about 50,000 lines of Perl which has all the HTML ( probably 60 or so pages ) all in the Perl as HERE doc's. It is a nightmare to maintain. In fact, it has become such a nightmare that I will shortly be starting a complete re-write where strict demarkation will be enforced, Perl for the programme, separate config system, HTML templates for structure and CSS docs for the styling.

        Hopefully that way I can keep from being gotcha'd all the time as I am now.

        jdtoronto

      Well, it is dangerous in the sense that it is only, IMHO, a partial separation of Perl and HTML. As a pragmatic point I consider that the programme and the presentation should 'always be separated when it is reasonably possible to do so'.

      The viewpoint I was hoping to express here is that if this technique works for you, then use it. But beware, it is only a half measure and wilst I would consider it appropriate for small or simple applications. I think the original question included a remark about the writer preparing some scripts for a friend where a simple script and a single template were involved. As a method of packaging the script and template where the author is likely to be the one modifying both parts then it might be a pragmatically acceptable alternative.

      jdtoronto

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (4)
As of 2024-04-19 21:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found