我有这个代码
if (defined($xml->{account}->{p}) == '2') { ... }
这给了我这个警告
Pseudo-hashes are deprecated at a.pl line 48.
问题是在某些情况下$xml-> {account} – > {p}不存在,这就是我添加已定义函数的原因.
$xml是一个对象,如果这有所不同?
怎么能修复,所以Perl不抱怨?
解决方法
$xml或$xml-> {account}是ARRAY,而不是HASH(您可以使用ref来检查这个,请参阅perldoc -f ref). Perl有一个名为“伪哈希”的现已弃用的功能,它允许通过哈希语法访问特殊数组.如果你关心历史,你可以谷歌或者看一本旧版的骆驼书.