http://www.perlmonks.org?node_id=321118


in reply to Re: Why CGI::Application?
in thread Why CGI::Application?

++ Perrin. I concur. C:A doesn't really do all that much, but the structure it offers is much much much much better then coding a spaghetti mess of ifs to run a webapp. So C:A provides a structure which does a great deal, even if the code itself is simple and small.

Once upon a time I wrote my own wrapper for building CGI apps, then later discovered I was heading down the very same path as C:A (only not as well.)

I'll use the space here to recommend Mason. It works very nicely with mod_perl and it is both powerful and easy. (And AMZN uses it on their core site, so that's a powerful endorsement.)

An example: deep inside a web page, within Mason, I can detect the user wanted the report in Excel, vs. HTML. Cool. Clear the buffer, send the right content type header, pump out the Excel data, and then turn off Mason processing -- didn't have to worry if I had sent headers or page content already, runmodes, etc.

And the Mason notion of components makes me feel like I am playing with Legos -- snap snap a new web page. Nope, move that function off this page to that page, sure. Snap, snap. Easy.

Could just be the "honeymoon" infatuation with a new (for me) technology, but I'm currently a strong advocate of H:M.

rkg

Replies are listed 'Best First'.
Re: Re: Re: Why CGI::Application?
by dragonchild (Archbishop) on Jan 14, 2004 at 11:44 UTC
    I'm curious, never having used Mason, how it's easier to use than HTML::Template + Excel::Template + PDF::Template ... They all use the same data structure and, assuming you have one function that all printing goes through, you do the dispatch there. Or, am I missing something?

    ------
    We are the carpenters and bricklayers of the Information Age.

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Re: Re: Re: Why CGI::Application?
by DrHyde (Prior) on Jan 15, 2004 at 09:47 UTC
    I concur. C:A doesn't really do all that much, but the structure it offers is much much much much better then coding a spaghetti mess of ifs to run a webapp.

    C::A may provide a way of avoiding spaghetti. So does thinking before touching the keyboard. A big if or switch or anything else does not automatically mean spaghetti. Spaghetti is a symptom of bad programming practices, and I don't care what modules you use, a bad programmer will always write nasty code.

Re: Re: Re: Why CGI::Application?
by Anonymous Monk on Jan 14, 2004 at 12:13 UTC
    Now that's just super complicating it. Mason has it's place, but this is not it.