8

在使用用户定义的变量时,没有'@'-sigil 有什么我不能做的吗?

#!perl6
use v6;

my $list = <a b c d e f>;
my @list = <a b c d e f>;

$list.list.perl.say;
@list.perl.say; 

$list[2..4].say;
@list[2..4].say;

$list.elems.say;
@list.elems.say;

$list.end.say;
@list.end.say;

say 'OK' if $list ~~ /^c$/;
say 'OK' if @list ~~ /^c$/;
4

1 回答 1

10

是的,可变参数需要@sigil:

sub SHOUT(*@a) {
      print @a>>.uc;
}

尽管那是在欺骗您的问题,但因为 @a 现在是一个形式参数,而不仅仅是一个变量。仅对于实际变量,标量可以完成您需要的一切,尽管通常比使用适当的印记要付出更多的努力。

于 2011-02-18T09:54:58.517 回答