perl – 引用上的键的参数类型必须是非散列的hashref或arrayref

前端之家收集整理的这篇文章主要介绍了perl – 引用上的键的参数类型必须是非散列的hashref或arrayref前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
if((scalar keys ($this->{'libraries'}->{$y}->{'cellHash'})) == 0){

这是我得到“引用键的参数类型必须是unblessed hashref或arrayref”错误的行.你能帮我解决这个问题吗?
我没有出于明显的原因发布代码.

解决方法

引用键的新功能被设计破坏了. Perl的开发团队无法弄清楚它应该如何与一些引用一起工作,因此它仅适用于某些引用.因此,密钥接受引用的能力记录为 experimental.无法解决此问题,此“功能”已被删除5.24.您不应该使用它,因为升级perl时代码将停止工作.

你已经遇到了在给定引用时键不起作用的情况.改为提供哈希或数组.在这种情况下,您可能想要

keys(%{ $this->{'libraries'}->{$y}->{'cellHash'} })

整件事可以写成如下:

if (!keys(%{ $this->{libraries}{$y}{cellHash} })) { ... }

猜你在找的Perl相关文章