if((scalar keys ($this->{'libraries'}->{$y}->{'cellHash'})) == 0){
这是我得到的“引用键的参数类型必须是unblessed hashref或arrayref”错误的行。你能帮我解决这个问题吗? 我不是出于显而易见的原因发布代码。
答案 0 :(得分:8)
keys
引用参考的新能力被设计破坏了。 Perl的开发团队无法弄清楚它应该如何与一些引用一起工作,因此它仅适用于某些引用。因此,keys
接受引用的能力记录为experimental。无法解决此问题,此“功能”已被删除5.24。您不应该使用它,因为升级perl
时代码将停止工作。
你已经看到了keys
在给出引用时不起作用的情况。改为提供哈希或数组。在这种情况下,您可能需要
keys(%{ $this->{'libraries'}->{$y}->{'cellHash'} })
整个事情可以写成如下:
if (!keys(%{ $this->{libraries}{$y}{cellHash} })) { ... }
答案 1 :(得分:-1)
%{$ this-> {'libraries'} - > {$ y} - > {'cellHash'}}。我错过了花括号和%。