Thanks Luke...
>
> Programming Perl, 3rd ed page 1034 index: inplace edit, page
> 495 and 665
>
That helped, and I found a Merlyn post on perlmonks, see below,
which turned out to be a little too magical for me. So the code below
is working, but parts of it still look strange to me, particularly the
part where I read the boilerplate from a file inside of the while<>.
Any suggestions for improvements would be welcome. (Note, this is
Win32...)
use warnings;
use strict;
use File::Find;
use File::Slurp;
#adapted from Randal Schwartz here:
http://www.perlmonks.com/index.pl?node_id=115428
{
my @starters = @ARGV ? @ARGV : 'C:/test/';
@ARGV = ();
find sub {
if ($_ ne ".") { #WHAT IS THIS "." FILE? SOME WINDOWS THING?
push @ARGV, "$File::Find::dir/$_";
}
}, @starters;
}
{
local $/; # slurp it
#local $^I; # = ".bak"; #NO BACKUP! YIKES! (gotta do 17,000 of 'em, no
room)
while (<>) {
my @path = split /\//, $ARGV;
my $boilerplate = read_file( 'bp.txt' ); #READ THIS FILE 17000
TIMES!?
$boilerplate =~ s/REPLACEME/$path[$#path]/g; #Replace string
"REPLACEME" with current filename.
my $file = read_file( $ARGV );
my $towrite = "$boilerplate$file";
open (OUT, ">$ARGV"); #dangerous, but what the heck...
print OUT $towrite;
}
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>