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