Perl 6小瞥之2 -- sigil
与Perl 5很不相同的是,sigil不会变化,scalar永远是$,array永远是@,hash永远是%
e.g.
Perl 6:
my $scalar = [1,2,3];
$scalar[0]; # return 1
my @array = (1,2,3);
@array[0]; # return 1
my %hash = ( one => 1, two => 2 );
%hash<one>; # return 1, equal to %hash{\'one\'}
等价的Perl 5:
my $scalar = [1,2,3];
${$scalar}[0]; # return 1
my @array = (1,2,3);
$array[0]; # return 1
my %hash = ( one => 1, two => 2 );
$hash{one}; # return 1
Perl 6增加了secondary sigil (twigil),以用来指代不同scoping的变量。
e.g.
$*foo为全局变量,$=foo为pod变量,$.foo为object attribute accessor。