if((scalar keys ($this->{'libraries'}->{$y}->{'cellHash'})) == 0){
这是我得到“引用键的参数类型必须是 unblessed hashref 或 arrayref”错误的行。你能帮我解决这个问题吗?出于明显的原因,我没有发布代码。
获取参考的新能力keys
被设计破坏了。Perl 的开发团队无法弄清楚它应该如何处理一些引用,因此它只适用于一些引用。因此,keys
接受参考的能力被证明是实验性的。无法解决此问题,此“功能”已在 5.24 中删除。你不应该使用它,因为当你升级你的perl
.
您已经遇到了keys
在给出参考时不起作用的情况。改为提供哈希或数组。在这种情况下,您可能想要
keys(%{ $this->{'libraries'}->{$y}->{'cellHash'} })
整个事情可以这样写:
if (!keys(%{ $this->{libraries}{$y}{cellHash} })) { ... }
%{$this->{'libraries'}->{$y}->{'cellHash'}} 。我错过了花括号和 % 。