Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: CHECKING IF HEADER DEFINED

by DrHyde (Prior)
on Aug 02, 2010 at 11:16 UTC ( #852447=note: print w/replies, xml ) Need Help??


in reply to Re: CHECKING IF HEADER DEFINED
in thread CHECKING IF HEADER DEFINED

And after checking out CGI::Application, you should choose not to use it. It's just a way of replacing a long if/elsif/elsif/else statement with some different and equally verbose boilerplate. IMO it's pointless.

Replies are listed 'Best First'.
Re^3: CHECKING IF HEADER DEFINED
by Anonymous Monk on Aug 02, 2010 at 11:42 UTC
    It's just a way of replacing a long if/elsif/elsif/else statement with some different and equally verbose boilerplate. IMO it's pointless.

    Nope, CGI::Application is a way of modularizing your code by splitting it up into screens (one sub per screen/action).

    Not having to write a giant if/elsif/elsif/else to separate your screens is a huge timesaver.

    Very pointy

      Working on the assumption that you would already have one sub per action (which probably calls several other subs in turn) and merely use the id/elsif/sleif/else to decide which to dispatch to, then I still fail to see what benefits CGI::Application gives you.

      From the documentation, you are expected to do this:

      sub setup { my $self = shift; $self->start_mode('mode1'); $self->mode_param('rm'); $self->run_modes( 'mode1' => 'do_stuff', 'mode2' => 'do_more_stuff', 'mode3' => 'do_something_else' ); }
      which really is just another way of writing this:
      if ($cgi{rm} eq 'mode1') { do_stuff } elsif($cgi{rm} eq 'mode2') { do_more_stuff } ...
      it's just different boilerplate.

        The $self->run_modes stuff takes care of the HTTP headers for you, which is the exact problem the OP has. So its much more useful than a large conditional where you claim it is identical.

        If you don't like configuring the runmodes in the setup method, you can just use CGI::Application::Plugin::AutoRunmode.

        Also, once you go with CGI::Application, you immediately have all of the plugins that others have shared on CPAN so you don't have to keep reinventing wheels that have already been done better by others.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2019-07-20 07:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?