my %spr_hash; # you do use strict, don't you? my $path = "/apps/inst1/metrica/TechnologyPacks/ON-SITE/Nokia_S11.5/reportspr"; opendir( D, $path ) or die "$path: $!"; while ( my $file = readdir( D )) { next if ( -d "$path/$file" ); open( F, "<", "$path/$file" ) or die "$path/$file: $!"; # @{$spr_hash{$file}} = ; # I'd rather slurp to a scalar: { local $/; $spr_hash{file} = ; } } print Dumper( \%spr_hash );