Hi,
A recent change in Apache-Test/lib/Apache/TestRun.pm
involves an in-place edit, at around line 765:
local @ARGV = $config_file;
while( <> ) {
s/old/new/;
print;
}
Unfortunately, Win32 can't do such in-place edits:
for example,
perl -spi -e 's#old#new#' file.txt
won't work, but
perl -spi.bak -e 's#old#new#' file.txt
will.
sigh :( shouldn't the perlrun and perlvar manpages state that bug?
Would something like
my $orig = $config_file . '.orig';
rename $config_file, $orig or die "...";
open(my $rfh, $orig) or die "...";
open(my $wfh, '>', $file) or die "...";
while(<$rfh>) {
s{old}{new}g;
print $wfh $_;
}
close $rfh;
close $wfh;
unlink $orig;
be OK?
Sure, will you do it?
But you can't use 'open my $fh', must use Symbol::gensym to support perl < 5.6. Also please drop () for consistency. Thanks.
But if you say that this works:
perl -spi.bak
why not doing:
local $^I = ".bak"; # windows can't do inplace edit
local @ARGV = $config_file;
while( <> ) {
s/old/new/;
print;
}
unlink "$config_file.bak";much simpler. __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
