my %b; create_hash_for_filename($filename,\%b); push @a, {%b}; #### sub create_hash_for_filename { my %b; ... return \%b; } push @a, create_hash_for_filename($filename); #### for my $i (0..9)