[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.

Reply via email to