use strict; use warnings; my $file1 = make_func (shift); my $file2 = make_func (shift); my ($line1, $line2); chomp $line1 and print $line1, $line2 while ($line1 = $file1->() and $line2 = $file2->()); sub make_func { my $file = shift; open my $FH, "<", $file or die "could not open $file $!"; sub {<$FH>; } }