my @array; &callaFunction(); &callaFunction(); &callaFunction(); foreach my $element ( @array ) { my %localHash = %{$element}; # print %localHash's contents } sub callaFunction { my $hash = {}; # fill $key and $value with some random info here $hash->{$key} = $value; push ( @array, $hash ); # if you still need a global hash assign $hash to it here. }