perl6: мне нужен @-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$/;
1 ответ
Решение
Да, для переменных параметров требуется @ sigil:
sub SHOUT(*@a) {
print @a>>.uc;
}
Хотя это обманывает ваш вопрос, потому что @a теперь является формальным параметром, а не просто переменной. Только для реальных переменных скаляры могут делать все, что вам нужно, хотя зачастую с большим усилием, чем если вы используете соответствующий символ.