Ram*_*amy 0 perl hash dereference
更新:我所知道的关于引用/解除引用的所有内容都来自: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']);
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.$result现在保存对数组的引用.
所以当我这样做时:
print "Result: @{ $result} \n";
Run Code Online (Sandbox Code Playgroud)
我明白了:
Result: HASH(0x20d95b0)
Run Code Online (Sandbox Code Playgroud)
可爱!但是我仍然需要取消引用哈希.然而,这里的事情变得奇怪(或者他们已经变得奇怪了?).
my $hash_ref = @{ $result};
print Dump($hash_ref));
Run Code Online (Sandbox Code Playgroud)
我明白了:
$VAR1 = 1;
Run Code Online (Sandbox Code Playgroud)
哪个...不是我所期待的.
我的期望是错的还是我以错误的方式取消引用?
如果@$result是数组,则LHS必须是列表.否则$hashref将分配数组大小.
my ($hash_ref) = @{ $result};
print Dump($hash_ref));
Run Code Online (Sandbox Code Playgroud)