open IN1,"cat $DATA_DIR/$INFILE_NAME |" or die "Can't open $INFILE_NAME: $!\n"; #### open my $in1FH, q{<}, $DATA_DIR/$INFILE_NAME or die qq{Can't open $INFILE_NAME: $!\n}; #### my @numbers = (); while( <$in1FH> ) { chomp; push @numbers, $_; } #### chomp( my @numbers = <$in1FH> ); #### my @filesToRead = ( populate this list somehow ); ... foreach my $file ( @filesToRead ) { open my $in2FH, q{<}, $file or die qq{Can't open $file: $!\n}; local $/ = qq{\n}; while( <$in2FH> ) { ... } close $in2FH or die qq{Can't close $file: $!\n}; }