Aldo Calpini skribis 2005-03-09 12:12 (+0100):
> my @a = 1,2,3;
> my $a = 1,2,3;
These are
(my @a = 1), 2, 3;
(my $a = 1), 2, 3;
if I understand precedence correctly. (S03)
> my $a = [EMAIL PROTECTED];
> my $a = *(1,2,3); # or is this a syntax error?
> my $a = *(list 1,2,3);
> my $a = *[1,2,3];
I hope this will emit some kind of too-many-arguments warning in
addition to assigning 1 to $a.
> and I have absolutely no clue about the following:
> my *$a = @a;
> my *$a = (1,2,3);
1, I hope. I think the * provides list context to the RHS as * in a
sub signature does to the arguments.
1 would be consistent with
my ($a) = @a;
in Perl 5
> my *$a = [1,2,3];
Arrayref.
(I don't like @a = []. It makes @a = ([]) be counter-intuitive (parens
only group for precedence), and @a = [[]] feels VERY weird. Besides
that, it makes @a = $b completely unpredictible if the type of $b is
unknown. If it's an arrayref, @a gets all its elements, but if it's a
normal value, @a gets only one element. That's a problem for general
purpose modules/subs. I guess they could all use @a = [$b], but I find
that ugly.)
Juerd
--
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html
http://convolution.nl/gajigu_juerd_n.html