[cgiapp] Program format (this is the way I write my code -help?)

Lou Hernsen lhernsen1015 at wowway.com
Wed Feb 13 19:59:51 EST 2008


ok great.. I think i'm getting it.

this must be the answer to the select case question I heard about years
ago...
While I get my brain to absorb this new stuff.. may I ask you to just
tranlate just one item for me?
# package name is LogIn.pl ( i was told to use .pl for packages, .pm for
modules)
# is in Game.cgi
if ($Input{Action} eq "Log In")
    {
     $Pm{Status}=Login::LogIn("$Input{Name}","$Input{PW}");
    exit;
    }

###### AH HA! I only need to put "1;" at the end on a package, not "return
1";
thanks....
Lou




----- Original Message ----- 
From: "Stewart Heckenberg" <stewart.heckenberg at gmail.com>
To: "CGI Application" <cgiapp at lists.openlib.org>
Sent: Wednesday, February 13, 2008 7:45 PM
Subject: Re: [cgiapp] Program format (this is the way I write my
code -help?)


> cgiapp is object-oriented, but you don't have to worry about that too
> much with what you're doing. The main thing to focus on is that
> instead of testing whether $input{action} eq 'some_action', you
> instead have a sub called 'some_action'.
>
> So your if/else blocks become subs, and instead the 'action' input
> param being set to 'some_action' set the 'rm' cgi query param to
> 'some_action' instead. All the rest of your code remains the same
> apart from this.
>
> See
http://search.cpan.org/~markstos/CGI-Application-4.06/lib/CGI/Application.pm
>
> Stew
>
> On 14/02/2008, Lou Hernsen <lhernsen1015 at wowway.com> wrote:
> > I sorta understand....and then not..
> >
> > The last program I wrote was 10K+ line long where I used only
subroutines
> > all in one cgi....
> > I was told I was nuts for doing that... now I am rewritting everything
over
> > again... and using some
> > new things I have learned about.... I will google some of the words you
used
> > .. and see what i get.
> >
> > Is what your talking about called "object oriented"?
> >
> > thanks for the help...
> > still lost but looking :)
> > Lou
> >
> >
> > ----- Original Message -----
> > From: "Stewart Heckenberg" <stewart.heckenberg at gmail.com>
> > To: "CGI Application" <cgiapp at lists.openlib.org>
> > Sent: Wednesday, February 13, 2008 7:29 PM
> > Subject: Re: [cgiapp] Program format (this is the way I write my
> > code -help?)
> >
> >
> > > Hi Lou,
> > >
> > > Actually you're close, but not close enough :)
> > >
> > > cgiapp actually allows you to get rid of all your if/else logic and
> > > instead use what are called "run modes", which in terms of your games
> > > are all the action/packets, e.g. instead of:
> > >
> > >  if ($Input{Action} eq "Log In")
> > >
> > > you would use:
> > >
> > > sub login {...
> > >
> > > and to trigger that sub to run, you set a query parameter called "rm"
> > > to be "login", e.g. foo.cgi?rm=login
> > >
> > > That's how cgiapp works -- instead of if/else blocks for your logic,
> > > you use subs, and to execute a particular sub you merely set the rm
> > > param to be the name of that runmode/sub. Have a look at the cgiapp
> > > documentation for some examples.
> > >
> > > Hope this helps :)
> > >
> > > Kind regards,
> > > Stew
> > >
> > > On 14/02/2008, Lou Hernsen <lhernsen1015 at wowway.com> wrote:
> > > > Hallo
> > > > I am writing an online game. I have a main .cgi and am using
packages
> > which
> > > > are "required" as needed.
> > > > My .cgi is one long if-elsif-else all based on what action you make
in
> > the
> > > > game. I do it this way so I can complete one packet at a time to do
a
> > > > certain thing.
> > > > All files are read in the .cgi and vars passes to packages as
> > needed..... am
> > > > I even close in my method?
> > > >
> > > > >>>>>Mind you, this is a hobby to me.. all self taught....<<<<<<<
> > > >
> > > > ANY suggestion for books on program format would be helpfull..
thanks
> > > > comments welcome.. try not to grind me into the dust, please LOL
> > > > thanks
> > > > Lou
> > > >
> > > > here is an example.
> > > >
> > > >  if ($Input{Action} eq "Log In")
> > > >  {
> > > >   $Pm{Status}=Login::LogIn("$Input{Name}","$Input{PW}");
> > > >   exit;
> > > >  }
> > > >  elsif ($Input{Action} eq "New Player")
> > > >  {
> > > >   Login::NewPlayer();
> > > >   exit;
> > > >  }
> > > >  elsif ($Input{Action} eq "Create Player")
> > > >  {
> > > >   Login::CreatePlayer("$Input{Name}","$Input{PW},"$Input{Gender}";
> > > >   exit;
> > > >  }
> > > >  elsif ($Input{Action} eq "EmailLogin")
> > > >  {
> > > >   $Pm{Status}=Login::EmailLogin("$Input{Name}","$Input{SN}");
> > > >   exit;
> > > >  }
> > > >
> > > >
> > > > #####  CGI::Application community mailing list  ################
> > > > ##                                                            ##
> > > > ##  To unsubscribe, or change your message delivery options,  ##
> > > > ##  visit:  http://lists.openlib.org/mailman/listinfo/cgiapp    ##
> > > > ##                                                            ##
> > > > ##  Web archive:   http://lists.openlib.org/pipermail/cgiapp/   ##
> > > > ##  Wiki:          http://cgiapp.erlbaum.net/                 ##
> > > > ##                                                            ##
> > > > ################################################################
> > > >
> > > >
> > >
> > > #####  CGI::Application community mailing list  ################
> > > ##                                                            ##
> > > ##  To unsubscribe, or change your message delivery options,  ##
> > > ##  visit:  http://lists.openlib.org/mailman/listinfo/cgiapp    ##
> > > ##                                                            ##
> > > ##  Web archive:   http://lists.openlib.org/pipermail/cgiapp/   ##
> > > ##  Wiki:          http://cgiapp.erlbaum.net/                 ##
> > > ##                                                            ##
> > > ################################################################
> > >
> > >
> > >
> > > --
> > > No virus found in this incoming message.
> > > Checked by AVG Free Edition.
> > > Version: 7.5.516 / Virus Database: 269.20.4/1275 - Release Date:
2/12/08
> > 3:20 PM
> > >
> > >
> >
> >
> > #####  CGI::Application community mailing list  ################
> > ##                                                            ##
> > ##  To unsubscribe, or change your message delivery options,  ##
> > ##  visit:  http://lists.openlib.org/mailman/listinfo/cgiapp    ##
> > ##                                                            ##
> > ##  Web archive:   http://lists.openlib.org/pipermail/cgiapp/   ##
> > ##  Wiki:          http://cgiapp.erlbaum.net/                 ##
> > ##                                                            ##
> > ################################################################
> >
> >
>
> #####  CGI::Application community mailing list  ################
> ##                                                            ##
> ##  To unsubscribe, or change your message delivery options,  ##
> ##  visit:  http://lists.openlib.org/mailman/listinfo/cgiapp    ##
> ##                                                            ##
> ##  Web archive:   http://lists.openlib.org/pipermail/cgiapp/   ##
> ##  Wiki:          http://cgiapp.erlbaum.net/                 ##
> ##                                                            ##
> ################################################################
>
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.20.4/1275 - Release Date: 2/12/08
3:20 PM
>
>



More information about the cgiapp mailing list