Here's a stub of how you could interact with multiple file handles in parallel:
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my @fhs;
for my $file (qw(file1.txt file2.txt file3.txt)) {
open my $fh, '<', $file;
push @fhs, $fh;
}
while (! grep eof, @fhs) {
my @lines = map {scalar <$_>} @fhs;
chomp @lines;
print "fh0 = $lines[0]\n";
print "fh1 = $lines[1]\n";
print "fh2 = $lines[2]\n";
}