Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Using map to create a hash/bag from an array

by GrandFather (Cardinal)
on Dec 17, 2005 at 10:41 UTC ( #517462=note: print w/ replies, xml ) Need Help??


in reply to Using map to create a hash/bag from an array

The idiomatic way to do that in Perl is @hash{qw(a b c)} = (1) x 3;:

use strict; use warnings; use Data::Dumper; my %hash; @hash{qw(a b c)} = (1) x 3; print Dumper (\%hash);

Prints:

$VAR1 = { 'c' => 1, 'a' => 1, 'b' => 1 };

DWIM is Perl's answer to Gödel


Comment on Re: Using map to create a hash/bag from an array
Select or Download Code
Re^2: Using map to create a hash/bag from an array
by bart (Canon) on Dec 18, 2005 at 10:45 UTC
    Except, IMHO, the hash values are irrelevant. Codewise, it's easier to use undef as hash values: your
    @hash{qw(a b c)} = (1) x 3;
    then becomes
    @hash{qw(a b c)} = ();

    That's a lot shorter, isn't it? And no need to count items.

      And faster too (making the obvious benchmark addition):

      Rate set map map++ GF Bart set 2288/s -- -84% -91% -92% -93% map 14566/s 537% -- -46% -48% -58% map++ 26756/s 1070% 84% -- -4% -23% GF 27881/s 1119% 91% 4% -- -19% Bart 34580/s 1412% 137% 29% 24% --

      See Re: Using map to create a hash/bag from an array for the original code


      DWIM is Perl's answer to Gödel

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://517462]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2014-10-25 07:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (142 votes), past polls