perl6: do I need the @-sigil for userdefined variables?
Asked Answered
A

1

8

Is there something I can't do without the '@'-sigil when working with user-defined variables?

#!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$/;
Architectonics answered 18/2, 2011 at 8:4 Comment(0)
M
10

Yes, variadic parameters require the @ sigil:

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

Though that's cheating your question, because @a is now a formal parameter, not just a variable. For actual variables only, scalars can do everything you need, though often with more effort than if you use the appropriate sigil.

Marrow answered 18/2, 2011 at 9:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.