in reply to Re: Copying a file to more than one separate directory and/or file
in thread Copying a file to more than one separate directory and/or file
Depending on the size of the file, you may exhaust the machine's memory allocated to disk buffering, which means that if you use File::Copy you will physically reread the same disk sectors over and over again. If this is true, the most effecient method of writing to multiple files would be to read a line, and write it out to all the output files. Something like:
my %fd = ( 'file1' => 'fd1', '/tmp/foo => 'fd2', '/home/me/file' => 'fd3', ); my $in = shift || die "No file specified.\n"; open IN. $in or die "Cannot open $in for input: $!\n"; foreach( keys %fd ) { open $fd{$_}, ">$_" or die "Cannot open $_ for output: $!\n"; } while( <IN> ) { foreach my $fd( keys %fd ) { print $fd $_; } } foreach( keys %fd ) { close $fd{$_}; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Copying a file to more than one separate directory and/or file
by nardo (Friar) on Jun 13, 2001 at 21:48 UTC |