在一些perl模块中,我看到代码:
if (exists $h->{Location}) { %args = (%args,-Status => 302); }
为什么作者使用-Status而不仅仅是Status?
当我必须使用’ – ‘签名哈希密钥名称时,为什么我会破解自己的模块?
UPD
阅读答案似乎它们必须相同,但事实并非如此
my $a = { -status => 'a',status => 3,}; print $a->{ status },$a->{ -status }; print pp $a;
OUTPUT
3a{ -status => "a",status => 3 }
我的perl5(修订版5版本20颠覆2)配置摘要:
这是否意味着旧模块现在坏了?
解决方法
这是一件历史文物.对其函数使用hash-key参数约定的第一个主要模块之一是Perl / Tk,它从TCL / Tk(它移植自来自)的密钥上引入了初始破折号命名约定.它传播并且很受欢迎.在我们使用“胖逗号”(=>)运算符之前,它在某种程度上帮助了解了键名和它们的参数.除了个人品味之外,今天真的没有理由使用它.