in reply to SYNOPSIS question on Perl manauls
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.
|
|---|