use strict; use warnings; my @files = `ls *.txt`; my %filedata; foreach my $file (@files) open (CUR, $file) || die "could not open $file: $!"; my @lines = ; $filedata{$file} = \@lines; close CUR; }