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