Perl打印hashref值

eal*_*eon 4 perl

我似乎无法打印hashref的值。

我可以这样打印键:

 foreach (sort keys %$wss_href) {
     print "$_\n";
 }
Run Code Online (Sandbox Code Playgroud)

我也想为每个键打印值:所以我尝试了:

 print "$_ => $wss_href{$_}\n";
 print "$_ => $%$wss_href{$_}\n";
Run Code Online (Sandbox Code Playgroud)

而且不断给我一个错误 Global symbol "%wss_href" requires explicit package name

我如何参考hashref来获取每个键的值?

ike*_*ami 6

如果%NAME用于哈希,则%{REF}用于哈希引用。

如果$NAME{EXPR}用于哈希,则${REF}{EXPR}用于哈希引用。

看到图案了吗?

您正在寻找以下内容:

for (sort keys %{ $wss_href }) {
    print "$_ => ${ $wss_href }{$_}\n";
}
Run Code Online (Sandbox Code Playgroud)

如果参考表达式只是一个变量,则可以省略curl。

for (sort keys %$wss_href) {
    print "$_ => $$wss_href{$_}\n";
}
Run Code Online (Sandbox Code Playgroud)

但是,您还可以使用更简洁的语法。

for (sort keys %$wss_href) {
    print "$_ => $wss_href->{$_}\n";
}
Run Code Online (Sandbox Code Playgroud)