Question

Y a-t-il quelque chose que je ne peux pas faire sans le sceau '@' - lorsque vous travaillez avec des variables définies par l'utilisateur?

#!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$/;
Était-ce utile?

La solution

Oui, les paramètres variadiques nécessitent le @ sigil:

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

Bien que cela triche votre question, car @A est maintenant un paramètre formel, pas seulement une variable. Pour les variables réelles uniquement, les scalaires peuvent faire tout ce dont vous avez besoin, mais souvent avec plus d'efforts que si vous utilisez le sceau approprié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top