引用上键的参数类型必须为unblessed hashref或arrayref


    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}},我错过了花括号和%。

最新更新