> John Michael wrote:
> I am attempting first to ge them to run correctly under.
> Apache::PerlRum

Be careful of PerlRum!  It will give you a wicked hangover!

PerlRun is a quick way to port dirty scripts that you can't take the
time to fix.  It's the slowest way to run anything in mod_perl, but if
your script uses lots of globals, imports functions all over the place,
etc. you may have no choice.

> I had a routine in the beginning of the program to initialze my variable hash and 
>query param like so:
> ######     initialize globals     ######################
> foreach (keys %VAR){$VAR{$_} = "";}
>  
> I did this so that these variables would not propogate to other instances of the 
>script.
> This was causing the error. 
>
> I removed it and added a this small sub:
> sub clean_up {
> undef %VAR;
> Apache::exit();
> }
>  
> Is this the correct way to do this or even necessary?

It should not be necessary.  Unless you have delcared these to be in a
separate package, PerlRun will clean them up after every request.  Are
you declaring a package in your script?

> The Apache::exit() function is still causing an error, but the script runs and works 
>but is evidently not exiting gracefully.

Why are you needing to exit?  Maybe this is something that you can
avoid, and improve performance.

> Also, I am running the script in an eval{ } block in order to trap errors in the $@ 
>variable.  
> IS this ok practice in mod-perl?

The entire script is in an eval block?  You can do that, but if all you
want is a decent page when something fails, just put up your nice page
and set it up as the SERVER ERROR page in httpd.conf.

> The scripts run, but sometimes through server errors.
> I am getting the following errors.
> 
> [Tue Oct 23 06:57:27 2001] [error] PerlRun: `Not a CODE reference at
> /home/usr1/digital/membersurl/perl/content_manager/handler.pl line
> 57.'
> 
> [Tue Oct 23 06:57:27 2001] [error] Can't locate object method "uri"
> via package "Apache::PerlRun" at
> /usr/lib/perl5/site_perl/5.6.0/i386-linux/Apache/PerlRun.pm line 212.

Things like this are usually the result of using libraries that don't
declare package names.  Do you pull in a bunch of functions with
something like 'use mylib.pl' with no package names declared in
mylib.pl?  There is more discussion about this in the guide.  In fact,
all of this is in the guide.

- Perrin

Reply via email to