Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: reading two files in parallel

by LanX (Canon)
on May 02, 2013 at 19:32 UTC ( #1031798=note: print w/ replies, xml ) Need Help??


in reply to reading two files in parallel

my ($a,$b); while( $a=<F1>, $b= <F2>, $a or $b) { ... }

reads till the end of the longer file. Changing to and limits to shorter one.

Cheers Rolf

( addicted to the Perl Programming Language)

UPDATE Please note

Since $a and $b are not chomped, no normal input line should ever be false and hence not necessarily tested with defined.

Better take care if you are using special filehandles allowed to return a simple 0 or null strings!!!

UPDATE

safer:

use strict; use warnings; use Data::Dump qw/pp/; open my $f1, "<", \ join "\n", 1..2; open my $f2, "<", \ join "\n", 1..5; while( defined (my $a=<$f1>) + defined (my $b=<$f2>) ) { $a .=""; $b .=""; chomp($a,$b); print "$a,$b\n"; }
out
1,1 2,2 ,3 ,4 ,5

In boolean context: + is like or, * is like and, just w/o short circuit.


Comment on Re: reading two files in parallel
Select or Download Code
Replies are listed 'Best First'.
Re^2: reading two files in parallel
by Laurent_R (Prior) on May 02, 2013 at 22:06 UTC
    Beautiful idea, I did not think of this way of doing it, thank you, Rolf, it might make my module simpler... if I finally end up doing it.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2015-07-08 03:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls