这不起作用:

 my %y = ("lkj",34);
 my %i = ("lkj",66);
 my @e = (\%y, \%i);
 my $u = ${%{$e[0]}}{"lkj"};

但是这样做:
         my %u = %{$e[0]};
         print $u{"lkj"};

如果我不想键入多余的行,该怎么办。

最佳答案

您使用->运算符:

$e[0]->{"lkj"}

您可以为arrayrefs做类似的事情,甚至可以链接:
my $eref = \@e;
print $eref->[0]->{"lkj"}

另外,您也可以通过使用{}速记来表示arrayrefs,从而在一行中完成所有设置:
my @e = ( { lkj => 34 }, { lkj => 66 } );

10-07 17:30