Insofar as I understand what you want to do, this might be one way:
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"],
],
}
See
Perl Data Structures Cookbook.
Update:
... I am trying to add an array to a list ... an array of hashes.
Maybe this is closer to what you want:
Win8 Strawberry 5.8.9.5 (32) Sun 08/15/2021 17:43:06
C:\@Work\Perl\monks
>perl
use strict;
use warnings;
use Data::Dump qw(dd);
my %current_main_record;
for my $k (qw(a b c)) {
my @role_records; # new array
for my $v (qw(Z Y)) {
push @role_records, { $k => $v };
}
push @{ $current_main_record{'role_data'} }, \@role_records;
}
dd \%current_main_record;
^Z
{
role_data => [
[{ a => "Z" }, { a => "Y" }],
[{ b => "Z" }, { b => "Y" }],
[{ c => "Z" }, { c => "Y" }],
],
}
Give a man a fish: <%-{-{-{-<