use warnings; use strict; open my $first, "<", "first.txt" || die "first.txt: $!\n"; # three-argument form of open is safer # scalar variables as filehandles are more modern than barewords open my $second, "<", "second.txt" || die "second.txt: $!\n"; while (! eof $first && ! eof $second) { # while both filehandles can be read chomp (my $fline = <$first>); # you can read the line and chomp at the same line chomp (my $sline = <$second>); print "${fline},${sline}\n"; } close $first; close $second;