更新:我所知道的关于引用/取消引用的一切都来自这里:http://www.thegeekstuff.com/2010/06/perl-array-reference-examples/
我正在使用一个库(来自库文档):
Returns a reference to an array of hash references
这在概念上对我来说是有意义的(我对编程并不陌生),但在功能上没有意义(显然,我对 perl 很陌生)。
这是一些代码:
my $Obj = QA::STK::ModuleImUsing->new(arguments, to, new);
$Obj->createClient();
$Obj->sync( ['/tmp/files/...']);
my $result = $Obj->method_in_question(['/tmp/files/ff-latest.xml']);
到目前为止,一切都很好。$result
现在保存对数组的引用。
所以当我这样做时:
print "Result: @{ $result} \n";
I get:
Result: HASH(0x20d95b0)
迷人的!但我仍然需要取消引用哈希。然而,这就是事情变得奇怪的地方(或者也许它们已经变得奇怪了?)。
my $hash_ref = @{ $result};
print Dump($hash_ref));
我明白了:
$VAR1 = 1;
这……根本不是我所期待的。
我的期望是错误的还是我以错误的方式取消引用事物?
If @$result
是一个数组,那么你的 LHS 必须是一个列表。否则$hashref
将被分配数组大小。
my ($hash_ref) = @{ $result};
print Dump($hash_ref));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)