[EMAIL PROTECTED] wrote:
Thank you.
I have added these directives in httpd.conf,
<Perl>
use Mymodule;
our $data = Mymodule->new;
</Perl>
Then I run bin/apachectl configtest,but got the errors,
Unknown type 'Mymodule' for directive data at
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/Apache2/PerlSectio
ns.pm line 192.\n
Please help.Thanks.
As with all Perl code, there is more than one way to do it. Another way
to accomplish what you are trying to do is through the use of
startup.pl, which is run during apache startup. (I don't know why that
error above is occurring so I'm posting this as an alternate approach).
# httpd.conf
PerlPostConfigRequire /home/pennyyh/perl/lib/startup.pl
# startup.pl
use strict;
use warnings;
use Mymodule;
Mymodule->init;
1;
## Mymodule.pm
package Mymodule;
use strict;
use warnings;
our $data;
sub new {
...
}
sub init {
my $class = shift;
$data = $class->new;
}
sub data {
my $class = shift;
return $data;
}
1;
then in your application you can access $data via $Mymodule::data, or
better yet access it like so:
my $data = Mymodule->data; # this returns the object created during
# startup
HTH,
Fred
-----Original Message-----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
CC: modperl@perl.apache.org
Sent: Tue, 25 Sep 2007 1.42AM
Subject: Re: load large data
On Mon, 24 Sep 2007 06:08:45 -0400
[EMAIL PROTECTED] wrote:
Hello,
I have a module,which loads large data into memory.
my $data = Mymodule->new;
this will take some ms to be finished.
So I think I can create this object at startup time,and share the
$data acrosss all apache child processes.
Is it possible?How can I do it?
Yeah you can do this in a <Perl> section at startup and
your children can then use it. I'm assuming here that the
info in $data doesn't change or that you're ok with having
to restart Apache to see the changes.
-------------------------------------------------------
Frank Wiles, Revolution Systems, LLC.
Personal : [EMAIL PROTECTED] http://www.wiles.org
Work : [EMAIL PROTECTED] http://www.revsys.com
________________________________________________________________________
Check out the new free AOL Email -- 2GB of storage and industry-leading
spam and email virus protection.