use strict; use warnings; my $file1 = <<'END_FILE'; 1 G 2 F 4 H 8 T END_FILE my $file2 = <<'END_FILE'; 5 Y 6 R 7 E 8 I END_FILE my $file3 = <<'END_FILE'; 2 H 4 T 3 G 8 R END_FILE my @fileHandles; open $fileHandles[@fileHandles], '<', $_ for \$file1, \$file2, \$file3; printLines (@fileHandles); close $_ for @fileHandles; sub printLines { my @fileHandles = @_; my $moreLines = 1; while ($moreLines) { my $line = ''; for my $fh (@fileHandles) { $line .= ' ' if length $line; $line .= <$fh> or return; chomp $line; } print "$line\n"; $line = ''; } }