( NevemTeve | 2022. 03. 18., p – 11:57 )

Talán ilyesmit lehetne próbálni:


my %h3= ('KEY1'=>[[111,112],[121,122]], 'KEY2'=>[[211,212],[221,222]]);
my ($k, $i, $j);
for ($k=1; $k<=2; ++$k) {
  for ($i=0; $i<2; ++$i) {
    for ($j=0; $j<2; ++$j) {
      printf "h3{KEY%d}[%d][%d]=%d\n", $k, $i, $j, ${$h3{'KEY'.$k}}[$i][$j];
    }
  }
}

Kimente:


h3{KEY1}[0][0]=111
h3{KEY1}[0][1]=112
h3{KEY1}[1][0]=121
h3{KEY1}[1][1]=122
h3{KEY2}[0][0]=211
h3{KEY2}[0][1]=212
h3{KEY2}[1][0]=221
h3{KEY2}[1][1]=222

Szerk: csak a kavarás kedvéért csináltam még pár referenciát és tömböt.


my $h3_KEY1REF= $h3{'KEY1'};
print 'h3_KEY1REF=',$h3_KEY1REF,"\n";

my @h3_KEY1= @{$h3{'KEY1'}};
print 'h3_KEY1=',@h3_KEY1,"\n";

my $h3_KEY1_0_REF= ${$h3{'KEY1'}}[0];
print 'h3_KEY1_0_REF=',$h3_KEY1_0_REF,"\n";

my @h3_KEY1_0= @{@{$h3{'KEY1'}}[0]};
print 'h3_KEY1_0=',@h3_KEY1_0,"\n";

Kimenete:


h3=KEY1ARRAY(0x7fffd22ffa28)KEY2ARRAY(0x7fffd2316c60)
h3_KEY1REF=ARRAY(0x7fffd22ffa28)
h3_KEY1=ARRAY(0x7fffd2300688)ARRAY(0x7fffd2300550)
h3_KEY1_0_REF=ARRAY(0x7fffd2300688)
h3_KEY1_0=111112