我正在从另一个函数接收哈希散列,散列哈希的一些元素可以是另一个哈希。如何测试是否有什么是哈希?
解决方法
根据您的需要,您将需要使用ref或reftype(在
Scalar::Util
中是核心模块)。如果引用是一个对象,则ref将返回对象的类而不是底层引用类型,reftype将始终返回底层引用类型。
if (ref $var eq ref {}) { print "$var is a hash\n"; } use Scalar::Util qw/reftype/; if (reftype $var eq reftype {}) { print "$var is a hash\n"; }