Win8 Strawberry 5.8.9.5 (32) Sun 08/15/2021 14:00:28 C:\@Work\Perl\monks >perl use strict; use warnings; use Data::Dump qw(dd); my %current_main_record; for my $x (qw(foo bar baz)) { my $ar_role_records; # new array ref. for my $y (qw(zip zap zop)) { push @$ar_role_records, "$x:$y"; } push @{ $current_main_record{'role_data'} }, $ar_role_records; } dd \%current_main_record; ^Z { role_data => [ ["foo:zip", "foo:zap", "foo:zop"], ["bar:zip", "bar:zap", "bar:zop"], ["baz:zip", "baz:zap", "baz:zop"], ], }