foreach(@file){ open(my $fh, "<", "$file") or die "Could not open $file because $!\n"; my @data = <$fh>; close($fh); } #memory used for @data gets garbage collected here #### { my @data; foreach(@file){ open(my $fh, "<", "$file") or die "Could not open $file because $!\n"; @data = <$fh>; close($fh); } }