我一直在阅读一些perl513 * delta文件,并且看到了一些Perl 5.14的新特性。从Perl 5.13.7开始,许多数组/散列函数将工作on array/hash refs as well。虽然这可能主要被看作是语法糖,或者Perl做你期望的,但我想知道,这会改变Perl中声明数据结构的范式吗?有一个已知的告诫,它打破了与小型Perl的兼容性,主要针对和反对使用匿名结构的争论是什么?更常用的数据结构引用
例如:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.13.7;
my $hashref = {
english => 'hello',
spanish => 'hola',
french => 'bon jour'
};
foreach my $greeting (keys $hashref) {
say $hashref->{$greeting}; #use say since we need a later version anyway
}
,而不是使用一个名为哈希(%hash
)的更传统的方式。
P.S.如果看到这是增强型的,我可以改为CW,但我很好奇听到一些观点。
这将有额外的好处,你不必经常使用绑定变量。你可以使用重载类。 –
有趣。是的,使用此功能将阻止您的代码在较早的Perl版本上运行。由于Perl版本的庞大安装基础,我会避免它,除非你知道你可以控制你将要运行的Perl版本。 (毕竟它只是语法糖。) –