$var = [ split /:/, $_ ];
means "make an anonymous array (an array reference) and insert into it the results of the split operation; then assign the reference to the variable $var".
More about split:
$_ = "Fracassus Cacus Eryx Anteus"; # see Acme::MetaSyntactic $foo = split; # '4' $foo = split /\s+/, $_; # '4' ($foo) = split /\s+/, $_; # ('Fracassus') ($foo, $bar) = split /\s+/, $_; # ('Fracassus', 'Cacus') ($foo, $bar) = split /\s+/, $_, 2; # ('Fracassus', 'Cacus Eryx An +teus') ($foo, $bar) = split /\s+/, $_, 1; # ('Fracassus Cacus Eryx Anteu +s', '') ($foo) = split /\s+/, $_, 1; # ('Fracassus') ($foo) = (split /\s+/, $_,) [2]; # ('Eryx')
It's odd that a split with LIMIT 1 behaves different when assigning to a list with a single or two variables; but it does. That's why I prefer to say
$foo = (split /\s+/, $_) [0];
if I want just the first element of the resulting list. The (split)[0] thingy means "give me the element 0 of the list returned by split".
Thanks to BooK++ for Acme::MetaSyntactic
--shmem
update: added missing backslashes to /s+/ :~}
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
In reply to Re^3: printing array reference and storing this data in a hash.
by shmem
in thread printing array reference and storing this data in a hash.
by mikejones
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |