in reply to Re: Re: mapping two arrays into anon hash
in thread mapping two arrays into anon hash

You're asking for the impossible, or if it is, it's going to be an ugly mess. Sure, it's nice to get a simple result that doesn't use extra variables, but if it becomes unreadible, then you're going to confuse others as to the meaning of your code. In this case, using a temporary hash is not going to increase your memory usage save for maybe an extra byte if you create a reference to the hash, and the code will be much easier to read.

But here's another solution that doesn't use any extra variables beyond $_:

use Data::Dumper; my @names = qw ( web email stuff ); my @values = qw( 33 44 55 ); my $ref = { map { $names[$_] => $values[$_] } (0..$#names) }; print Dumper $ref;
(It's still not as clean as using the hash slice, IMO, but if that's what you want...)

-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important

Replies are listed 'Best First'.
Re: mapping two arrays into anon hash
by agoth (Chaplain) on Jan 08, 2002 at 18:02 UTC
    Thanks for that, that's it.

    Don't worry! I have no intention of leaving it in the code, and will probably opt for the subroutine method anyway, I do generally work with half an eye on maintainability.
    What REALLY bugged me was not being able to figure out HOW to shortcut it even if I wasn't going to use the shortcut in the end product...There might be 8 WTDI in this case but i knew there was a shorter WTDI somewhere....