我正在寻找Perl警告的解决方案
"参考的关键是实验性的"
我从这样的代码得到这个:
foreach my $f (keys($normal{$nuc}{$e})) {#x, y, and z
Run Code Online (Sandbox Code Playgroud)
我在这里找到了类似StackOverflow的东西:
但我不知道如何在我的情况下应用它.
如何在不抛出此错误的情况下获取多个键控哈希的键?
keys %{$normal{$nuc}{$e}}
Run Code Online (Sandbox Code Playgroud)
例如,首先取消引用它.
如果你有一个开头的参考,你不需要{}Eg:
my $ref = $normal{$nuc}{$e};
print keys %$ref;
Run Code Online (Sandbox Code Playgroud)
问题是它$normal{$nuc}{$e}是一个哈希引用,并且keys正式只接受哈希.解决方案很简单 - 您必须取消引用该引用 - 您可以通过编写来解决这个问题
for my $f ( keys %{ $normal{$nuc}{$e} } ) { ... }
Run Code Online (Sandbox Code Playgroud)
但是将哈希引用提取到中间变量中可能更明智.这将使您的代码更加清晰,就像这样
my $hr = $normal{$nuc}{$e};
for my $f ( keys %$hr ) { ... }
Run Code Online (Sandbox Code Playgroud)
我鼓励你写出更有意义的变量名.$f并且$e可以告诉你很多,而你写它,但它肯定会引起别人的问题,它甚至可能会回来一两年来打你的路线
同样,我确信有一个更好的标识符$hr,但我不知道你的数据结构的各个级别的含义,所以我不能做得更好.请将其称为与其指向的数据相关的内容
| 归档时间: |
|
| 查看次数: |
4557 次 |
| 最近记录: |