Hello,

I want to pre-open files in apache's processes.
So every modperl handlers will use the file handle directly, instead
of re-openning the files each time when the requesting is coming.

Currently I do it with:

package Fileopen;
use strict;
require Exporter;

our @ISA = qw(Exporter);
our @EXPORT = qw($filehandle);
our $filehandle;

open $filehandle,"<","/path/to/big.file" or die $!;  # open  for
reading only, the file itself is readable only.


1;


Then in startup.pl:

use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Request ();
use Fileopen;
# use others...

1;


Last in each handler:

package Myhandler;

use strict;
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Const -compile => qw(OK);
use Apache2::Request ();
use Fileopen;

sub handler {
    my $r = shift;
    our $filehandle;  # exported from Fileopen
    # deal with $filehandle
    ...
}

1;


I'm not sure, am I going on the correct way for the purpose?
Thanks for the helps.

Regards.

Reply via email to