Perl6之二 - sigil(obsolete)

sunnavy
2006-11-23 18:52:25 +0000
newer version is here

与Perl5很不相同的是,sigil不会变化,scalar永远是$,array永远是@,hash永远是%

e.g.

Perl6:

 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;      # return 1, equal to %hash{'one'}

等价的Perl5:

 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

Perl6增加了secondary sigil (twigil),以用来指代不同scoping的变量。

e.g.

$*foo为全局变量,$=foo为pod变量,$.foo为object attribute accessor。