my ($a,$b); while( $a=, $b= , $a or $b) { ... } #### 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"; } #### 1,1 2,2 ,3 ,4 ,5