什么理由使用' - '签入perl哈希密钥名称?

Eug*_*kov 8 perl hash

在一些perl模块中,我看到代码:

if (exists $h->{Location}) {
    %args = (%args, -Status => 302);
}
Run Code Online (Sandbox Code Playgroud)

为什么作者使用-Status而不仅仅是Status
当我必须使用' - '签名哈希密钥名称时,为什么我会破解我自己的模块?

UPD
阅读答案似乎它们必须相同,但它们不是

my $a =  { -status => 'a', status => 3, };
print $a->{ status }, $a->{ -status };
print pp $a;
Run Code Online (Sandbox Code Playgroud)

OUTPUT

3a{ -status => "a", status => 3 }
Run Code Online (Sandbox Code Playgroud)

我的perl5(修订版5版本20颠覆2)配置摘要:

这是否意味着旧模块现在坏了?

Cal*_*ahl 7

这是一件历史文物.为其函数使用hash-key参数约定的第一个主要模块之一是Perl/Tk,它从TCL/Tk(它移植自来自)的密钥上引入了初始破折号命名约定.它传播并且很受欢迎.在我们使用"胖逗号"(=>)运算符之前,它有助于将键名和它们的参数区分开来.除了个人品味之外,今天真的没有理由使用它.

  • 不。或者至少不是自动的。 (2认同)