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?
Re^2: thoughts on creating modular perl for web application
Download Code Replies are listed 'Best First'.
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.
my $footer = Footer->new();
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.