Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 取消对散列值的引用_Perl_Hash_Reference - Fatal编程技术网

Perl 取消对散列值的引用

Perl 取消对散列值的引用,perl,hash,reference,Perl,Hash,Reference,这不起作用: 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 =

这不起作用:

 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 } );

->
在索引之间使用时可以隐含
$e[0]{lkj}
$eref->[0]{lkj}
可以正常工作。