in reply to Re^2: printing array reference and storing this data in a hash.
in thread printing array reference and storing this data in a hash.
$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}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: printing array reference and storing this data in a hash.
by mikejones (Scribe) on Dec 19, 2006 at 20:13 UTC | |
|
Re^4: printing array reference and storing this data in a hash.
by mikejones (Scribe) on Dec 20, 2006 at 18:04 UTC | |
by shmem (Chancellor) on Dec 20, 2006 at 18:26 UTC |