----- Original Message -----
From: "Stas Bekman" <[EMAIL PROTECTED]>
To: "pascal barbedor" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Sunday, October 07, 2001 2:22 PM
Subject: Re: piece of code in mod_perl guide
> >
> >
> >
> > I have located that if i change $MODIFIED{$file} = -M _; to an
> > explicit $MODIFIED{$file} = -M $file;
>
>
> That's weird. _ uses the cached stat's output from the last stat call.
> Does this work for you?
>
> perl -e '-s "/etc/passwd"; print -M _'
>
yes it works, but the piece of code in mod_perl guide does not work, on my
specific config.pm, I don't understand why.
see below, the code, the output of the code, the config file .
In fact, it looks like when I try it on any other file that my config file,
it works. or it works on my config file with the explicit -M $file instead
of -M _.
If you can find any explanation...
pascal barbedor
code run
: --------------------------------------------------------------------------
------------------
print -s 'l:/config.pm',"\n", -M _,"\n";
for (1..10){ reread_conf("l:/config.pm") }
our %MODIFIED;
sub reread_conf{
my $file=shift;
return unless $file;
return unless -e $file and -r _;
if ($MODIFIED{$file} and $MODIFIED{$file}== -M _){
print "same" } else { print "different" }
print "\n";
unless ($MODIFIED{$file} and $MODIFIED{$file}== -M _){
unless (my $result = do $file){
print "lecture\n";
warn "lecture de $file impossible: $@" if $@;
warn "do de $file impossible: $!" unless defined $result;
warn "run de $file impossible" unless $result;
}
print "\nmod:",$MODIFIED{$file},' :', -M _,"\n";
$MODIFIED{$file} = -M _;
}
}
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-----------
output of code (see that the first stat worked and gives an age of very few
fraction of days, where reread_conf gives 66 days.)
with -M _ last line
983
0.00259259259259259
different
mod: :
different
mod: :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
different
mod:67.2868981481481 :67.2868981481481
Bonne ex�cution du processus
----------------------------------------------------------------------------
---------------------
output of code with -M $file last line
983
0.0047337962962963
different
mod: :
same
same
same
same
same
same
same
same
same
Bonne ex�cution du processus
----------------------------------------------------------------------------
------
config.pm file
package AFPA::Evolif::Config ;
use XML::LibXML () ;
use XML::LibXSLT () ;
use XML::XPath () ;
use XML::Simple () ;
use DBI () ;
my $base='l:/perlinclude';
$CHASH{pconn}->disconnect() if $CHASH{pconn};
our %CHASH = (
indicateurs =>
XML::LibXML->new->parse_file('l:/perlinclude/indicateurs.xml')
,
glups =>
XML::LibXSLT->new->parse_stylesheet
(XML::LibXML->new->parse_file("l:/perlinclude/glups.xsl"))
,
groupes =>XML::XPath->
new(filename=>"l:/perlinclude/categories/groupements.xml")
,
zones =>XML::XPath->
new(filename=>"l:/perlinclude/categories/decoupages.xml")
,
select=>XML::LibXSLT->new->parse_stylesheet
(XML::LibXML->new->parse_file("l:/perlinclude/evselecteur.xsl"))
,
pconn=>DBI->connect("DBI:mysql:database=evolif;host=localhost",
"pconn",
undef,
{RaiseError=>1}
)
,
) ;
#my $stylesheet=
# XML::LibXSLT->new->parse_stylesheet (F_GLUP_XML);
#print $stylesheet->transform(F_IND_XML);
1 ;