2011-02-18 13 views
8

¿Hay algo que no puedo hacer sin el '@' - sigil cuando trabajo con variables definidas por el usuario?perl6: ¿necesito el @ -sigil para las variables definidas por el usuario?

#!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$/; 

Respuesta

9

Sí, variadic parámetros requieren el @ sigilo:

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

A pesar de eso es hacer trampa a su pregunta, porque @a es ahora un parámetro formal, no sólo una variable. Solo para las variables reales, los escalares pueden hacer todo lo que necesita, aunque a menudo con más esfuerzo que si usa el sigilo apropiado.

Cuestiones relacionadas