简单的问题:
我如何在一行上执行此操作:
my $foo = $bar->{baz}; fizz(\$foo);
我试过了\ $ bar - > {baz},\ $ {$ bar - > {baz}}等等.这甚至可能吗?
-fREW
更新:好的,hashref来自DBI,我将标量引用传递给模板工具包.我想现在我更仔细地看待这个问题与TT如何做到这一点有关.实际上,我想说:
$template->process(\$row->{body}, $data);
但TT没有那样工作,TT采用标量参考并将数据放在那里,所以我必须这样做:
$template->process(\$row->{body}, $shopdata, \$row->{data});
无论如何,谢谢你的帮助.我至少只有一个参考而不是两个.
\$bar->{baz}
应该管用.
例如:
my $foo; $foo->{bar} = 123; my $bar = \$foo->{bar}; $$bar = 456; print "$foo->{bar}\n"; # prints "456"
在回答OP中的更新时,您可以:
\@$row{qw(body data)};
这与\ @array不同,它会创建一个对数组的引用.以上将分发引用并列出两个引用.