qw(...) returns a list of whitespace separated strings. So at first the *ary is only a string.
It's Data::Dumper that's giving the string a special meaning. The second argument to Dump is an array ref of variable names. When you pass in *ary, it makes the result a scalar if the data to dump is an ordinary scalar, but it because @ary if the data is an array reference:
$ perl -MData::Dumper -wE 'print Data::Dumper->Dump([[1, 2]], [q[$foo] +])' $foo = [ 1, 2 ]; $ perl -MData::Dumper -wE 'print Data::Dumper->Dump([[1, 2]], [q[*foo] +])' @foo = ( 1, 2 ); $ perl -MData::Dumper -wE 'print Data::Dumper->Dump([{ a => 2}], [q[*f +oo]])' %foo = ( 'a' => 2 );
I guess that's in analogy to the typeglob syntax explained in perlmod.
In reply to Re: SYNOPSIS question on Perl manauls
by moritz
in thread SYNOPSIS question on Perl manauls
by jaeh3ang
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |