Lou,

If your program was 10K lines long, then I'm guessing that there were a lot of different actions, and maybe a lot of html included in your code? If you start to rewrite this with CGI::Application you might want to think about clustering those actions into smaller groups and making several smaller "applications" that work together as a suite for form your larger game. For instance all of the actions associated with login could be one "application", while all of the actions associated with moving through the rooms in the dungeon (or whatever) could be associated with another "application". This will break your code up into more manageable bits.

And if you have html strewn through your perl code, CGI::Application will make it easy for you to adopt a html template language like HTML::Template or Template Toolkit which will get all of the html out of you code. Google around for MVC frameworks and you'll see that CGI::Application and many other web application frameworks are trying to make it easy to separate the logic of your coding language (perl) from the presentation of you display language (html) which makes your code more flexible and maintainable.

If you're being exposed to object oriented perl for the first time I'd recommend the first few chapters of the Object Oriented Perl book by Damain Conway (http://www.manning.com/conway/).

Barry

On Feb 13, 2008, at 5:33 PM, Lou Hernsen 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" <[EMAIL PROTECTED]>
To: "CGI Application" <cgiapp@lists.erlbaum.net>
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 <[EMAIL PROTECTED]> 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://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################



#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/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://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################



#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to