【发布时间】:2011-01-20 04:01:51
【问题描述】:
我目前正在尝试学习 Perl,我注意到有时人们在将变量作为参数传递时会“转义”变量。我首先使用 SQL::Abstract 注意到了这一点:
my %hash = (
'foo' => 'bar'
);
$db->insert('table', \%hash);
现在,在 Perl 中搜索“print_r”(PHP)等价物并看到人们推荐 Data::Dumper,我无法理解为什么人们会认为它们是等价的,直到我看到一个使用 print Dumper(\%hash); 的示例的print Dumper(%hash);。
这个:
my %hash = (
key1 => 'value1',
key2 => 'value2'
);
print Dumper(%hash);
输出这个:
$VAR1 = 'key2';
$VAR2 = 'value2';
$VAR3 = 'key1';
$VAR4 = 'value1';
但是print Dumper(\%hash); 输出如下:
$VAR1 = {
'key2' => 'value2',
'key1' => 'value1'
};
有人可以准确解释这是什么以及发生了什么吗?我在我的 Perl 书上找不到这个,甚至不知道在 Google 上搜索什么。谢谢。
【问题讨论】:
-
输入“perldoc perlreftut”,喝杯咖啡,尽情享受吧。