It's creating a hash named %foo using a hash slice built out of the elements in @foo. Then it's assigning to that slice the values 0 to (the number of elements). So if @foo = ('a', 'b', 'c'), you get
@foo{'a', 'b', 'c'} = (0, 1, 2);
which is itself just shorthand for
$foo{'a'} = 0;
$foo{'b'} = 1;
$foo{'c'} = 2;
(technically, @foo in scalar context returns a value one too large, so we're really mapping to (0,1,2,3), but the odd element gets ignored. It might be more proper to use $#foo there (the index of the last element, instead of the number of elements)) | [reply] [d/l] [select] |
Aaaaaaaah... That was clever. Thanks!
| [reply] |
You want to look up hashslices. That's going to be the key.
------
We are the carpenters and bricklayers of the Information Age.
Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose
I shouldn't have to say this, but any code, unless otherwise stated, is untested
| [reply] |