小编Ric*_*cky的帖子

%hash和\%hash之间的区别作为参数?

我目前正在尝试学习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);
Run Code Online (Sandbox Code Playgroud)

输出:

$VAR1 = 'key2';
$VAR2 = 'value2';
$VAR3 = 'key1';
$VAR4 = 'value1';
Run Code Online (Sandbox Code Playgroud)

print Dumper(\%hash);输出这个:

$VAR1 = {
          'key2' => 'value2',
          'key1' => 'value1'
        };
Run Code Online (Sandbox Code Playgroud)

有人可以解释这是什么以及发生了什么?我在我的Perl书上找不到这个,甚至不知道在Google上搜索什么.谢谢.

syntax perl

6
推荐指数
1
解决办法
2126
查看次数

标签 统计

perl ×1

syntax ×1