Perl:如何使用常量标记值作为关联数组的键?

时间:2014-01-18 09:46:22

标签: perl

如何使用常量标记值作为perl中哈希的键?

以下代码的输出为“CONST_TAG”。我希望输出为“MyKey”。

#!/usr/bin/perl

use constant CONST_TAG => 'MyKey';

my $rec = {};
$rec->{CONST_TAG} = "testName";
printf "%s\n", keys(%{$rec});

2 个答案:

答案 0 :(得分:4)

除了在他的回答中像user49740所说的那样明确地调用sub(常量只是一个sub)时,你还可以在{{3}前面添加+符号。 }。这将关闭散列访问curles中的裸字自动引用。

$res->{+CONST_TAG} = "testName";

另见bareword these

答案 1 :(得分:2)

$rec->{CONST_TAG()} = "testName";

这是因为散列访问中的裸字(例如CONST_TAG)被转换为字符串。因此,CONST_TAG成为字符串'CONST_TAG'

声明

use constant NAME => VALUE;

创建一个带有空原型的子程序:

sub NAME () { VALUE }

通过显式调用它,可以避免在哈希访问中自动引用裸字。