use IO::File; my %files; foreach my $name (@ARGV) { my $file = IO::File->new($name) or next; # print error message here, etc. my @lines = <$file>; $files{$name} = \@lines; $file->close; }