You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by "Thomas K. Burkholder" <bu...@dogrobber.com> on 2001/04/18 10:54:11 UTC
Final form of config code [Was: RE: What the heck actually
happens in a perl section?]
Thanks to those who helped out with this. Nobody quite got the case of
beer, but here's the final form, just in case anyone ever needs
something similar to this in the future. It's pretty ugly still (and I
know there are some better ways for some of this), but I could see it
being useful in ISP/hosting situations.
//Thomas
Thomas K. Burkholder
burkhold@dogrobber.com
<IfModule mod_perl.c>
PerlInitHandler Apache::StatINC
PerlModule Apache::DBI
<perl>
use IO::File;
use Data::Dump;
# use Apache::PerlSections ();
# convert this to per-user match later
while(my ($name,undef,undef,undef,undef,undef,undef,$dir) =
getpwent()) {
my $filename = "$dir/perl/mod_perl_setup";
my $file = IO::File->new("< $filename");
if ($file) {
my $inc = '';
$_ = <$file>;
s/(.*)\s*=\s*(.*)\s*$/$inc = "$1 $2"/e;
my $pv = '';
$_ = <$file>;
s/(.*)\s*=\s*(.*)\s*$/$pv = "$1 $2"/e;
while (<$file>) {
my ($key, $value);
s/(.*)\s*=\s*(.*)\s*$/($key, $value) = ($1,$2)/e;
# print "mapping $key to $value\n";
my %loc = (
PerlSetEnv => $inc,
PerlSetVar => $pv,
SetHandler => 'perl-script',
PerlHandler => $value
);
$Location{"$name/public_perl/$key"} = \%loc;
}
$file->close();
}
}
# print Apache::PerlSections->dump;
endpwent();
</perl>
</IfModule>