Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: thoughts on creating modular perl for web application

by emilford (Friar)
on Mar 14, 2005 at 21:06 UTC ( #439450=note: print w/ replies, xml ) Need Help??


in reply to Re: thoughts on creating modular perl for web application
in thread thoughts on creating modular perl for web application

No, the templating system isn't what I'm after, but rather how to logically organize the chunks of code that the templating system would reference. So I'd have 'monks.pm' that would have a subroutine called getContent(). When [% $monks->getContent(); %] is used in the template system, the correct HTML code would be returned based on monks.pm. Make sense?


Comment on Re^2: thoughts on creating modular perl for web application
Download Code
Re^3: thoughts on creating modular perl for web application
by Hero Zzyzzx (Curate) on Mar 14, 2005 at 21:20 UTC

    Mason offers more than mere templatting, give it a long look.

    -Any sufficiently advanced technology is
    indistinguishable from doubletalk.

    My Biz

Re^3: thoughts on creating modular perl for web application
by jdalbec (Deacon) on Mar 15, 2005 at 00:54 UTC
    Mason's various pieces revolve around the notion of "components". A component is a mix of HTML, Perl, and special Mason commands, one component per file. So-called "top-level" components represent entire web-pages, while smaller components typically return HTML snippets for embedding in top-level components.

    This sounds like what you want, but my reading of the docs suggests that components don't quite work like subroutines. Maybe you could give us some more information about exactly how your existing "xyz" template system calls Perl functions. Can you tell us what "xyz" is or is that a trade secret at your company?

      I've looked over Mason and, yes, it does a heck of a lot that would make my life easier. However, I am unable to install modules, so Mason doesn't much help. I brought it up, but the request was shot down.

      It's no trade secret, but let's just assume there is no templating system, but rather a single CGI script that will use the various modules and then dump everything with print statements. As long at the Perl modules return valid HTML in the form of a string, should be good to go.

      I have this dummy CGI script and the Perl modules written. Each module is it's own package with a getContent() subroutine that uses __DATA__ to return the HTML.
      use Footer; my $footer = Footer->new(); print $footer->getContent();
      This approach works, but I'm looking for a more elegant solution, mainly with the indivdual modules as there is a ton of repetition with each module having its own getContent() subroutine. I'm also worried about overlap in any way, if that's possible. Any suggestions?

        It always amazes me that someone would shoot down installing modules. On what basis? I have wondered this in the past... point #1 sounds like it's relevant here: why spend company time reinventing the wheel, rather than getting the wheel for free?

        ISPs are another story - they don't want to muck about with their environment. So then you're in about point #2 in the above article, even though it referred to university there, the point still stands for ISPs - install to a private directory and just go.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (11)
As of 2014-09-18 12:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (113 votes), past polls