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 ->{‘库’}-> {$ y} ->{‘cellHash}},我错过了花括号和%。