Rah*_*ddy 4 perl hashref arrayref
if((scalar keys ($this->{'libraries'}->{$y}->{'cellHash'})) == 0){
Run Code Online (Sandbox Code Playgroud)
这是我得到"引用键的参数类型必须是unblessed hashref或arrayref"错误的行.你能帮我解决这个问题吗?我没有出于明显的原因发布代码.
采用keys参考的新能力被设计破坏了.Perl的开发团队无法弄清楚它应该如何与一些引用一起工作,因此它仅适用于某些引用.因此,keys接受参考的能力被证明是实验性的.无法解决此问题,此"功能"已被删除5.24.您不应该使用它,因为升级时代码将停止工作perl.
你已经找到了那些keys在给出参考时不起作用的情况.改为提供哈希或数组.在这种情况下,您可能想要
keys(%{ $this->{'libraries'}->{$y}->{'cellHash'} })
Run Code Online (Sandbox Code Playgroud)
整件事可以写成如下:
if (!keys(%{ $this->{libraries}{$y}{cellHash} })) { ... }
Run Code Online (Sandbox Code Playgroud)