my @flat = map { exp_arr($_, $hash{$_}) } keys %hash; sub exp_arr { my $var = shift; my $cnt = shift; my @arr; for ( my $i = 0; $i < $cnt; $i++ ) { push @arr, $var; } return @arr; }