Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Naming file handles with variables?

by citromatik (Curate)
on Apr 30, 2009 at 07:09 UTC ( #761051=note: print w/ replies, xml ) Need Help??

in reply to Naming file handles with variables?

Another (and less efficient) way, using Tie::File:

use strict; use warnings; use Tie::File; my @fnames = @ARGV; my @fhandlers; for my $fname (@fnames) { tie my @farr, 'Tie::File', $fname or die $!; push @fhandlers, \@farr; } # Traverse the files: for my $i (0..$#{$fhandlers[0]}){ my @nextvals = map {$_->[$i]} @fhandlers[0..$#fhandlers]; # @nextvals has the next line of each file } untie $_ for (@fhandlers);

Beware of possible overheads if the files are very big. (0..$#{$fhandlers[0]}) traverses the whole first file just for know how many lines it has.

Update: Added note about efficiency


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://761051]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2016-08-26 01:13 GMT
Find Nodes?
    Voting Booth?
    The best thing I ever won in a lottery was:

    Results (364 votes). Check out past polls.