Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Data, Logic, Display: The Multi-Tiered Decoupled Approach to Web Design

In Refining the CGI process through structure and templates, boo_radley does state:
A good CGI framework should provide 1.Template handling -- go TT2! Keeping templates divorced from code allows me to to farm out HTML and probably SQL, not to mention benefits of maintenance, etc
But one must ask. Does Template force one to separate Perl and HTML? The answer is no, it does not. In fact, anything you can do in Perl, you can do using the [% PERL %] Template directive.

Furthermore, Template exports a mini-language, containing loops and conditionals and simplified methods of defining Perl hash and array refs. And beyond that, people have written plugins to extend this mini-langauge even further to support database interaction among other things.

So, with Template as your templating solution, you have Perl and Template as programming languages and then you have HTML.

On the other hand HTML::Template has far more limited mini-language, forcing one to do much more in pure Perl.

Web App Frameworks and Their Chosen Template Engine

OpenInteract made by our own lachoy. Template
boo_radley's framework Template
CGI::Application HTML::Template
CGI HTML::Template --- this is not entirely true. What is true is that HTML::Template @ISA qw(CGI) And therefore anywhere that you use HTML::Template you are already using CGI.
Apache::PageKit HTML::Template
AxKit XPathScript or XSLT (your choice)
CGI::MxScreen None --- use what you want
HTML::EP Builtin --- has a Perl tag (uh-oh). Is extensible (uh-oh#2).
BingoX Builtin --- has a Perl tag (uh-oh). Is extensible (uh-oh#2).
CGI::Portable It's can't figure out what it has.
LibWeb I can't figure out what it has!
HTML::Embperl and HTML::Mason Perl. That may sound funny but that's how these two modules do it. Of course you can develop your own HTML display modules in Perl and use them inline.


In my eyes, Template is offering replicated functionality through its too-powerful and too-feature-packed mini-language. There is nothing that this mini-language offers that cannot and should not be done in re-usable Perl modules.

On the other hand, HTML::Template by creating a very narrow snake's tube between Perl computation and HTML display, forces one to use Perl for it's strength and HTML for it's without any chance for the feature overlap phenomenon that has happened with Template.

In reply to Web Application Frameworks and their Templating Engines with a Comparative Study of Template and HTML::Template by princepawn

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others perusing the Monastery: (4)
    As of 2018-06-19 02:58 GMT
    Find Nodes?
      Voting Booth?
      Should cpanminus be part of the standard Perl release?

      Results (111 votes). Check out past polls.