http://qs321.pair.com?node_id=189843


in reply to Array to hash refs

my @array = qw /a b c/; my $hash; my $val = 1; ($hash, $hash -> {pop @array}, $val) = (undef, $val, $hash) while @arr +ay > 1; $hash -> {pop @array} = $val;
Abigail

Replies are listed 'Best First'.
Re: Re: Array to hash refs
by BrowserUk (Patriarch) on Aug 14, 2002 at 08:06 UTC

    Even with jeffa's notes below, it still took me a while to wrap this around my brain but when I had, I came up with this....

    my @array = qw /a b c d e f/; my $hash; my $val = 1; ($hash->{pop @array}, $val, $hash) = ($val, $hash, undef) while @array +; $hash = $val;

    Which is slightly cleaner?, but that final assignment stood out so...

    my @array = qw /a b c d e f/; my $hash = 1; my $tmp; ($tmp->{pop @array}, $hash, $tmp) = ($hash, $tmp, undef) while @array +;

    Slightly non-intuative to assign the value to the hashref at the start but...

Re: Re: Array to hash refs
by aufrank (Pilgrim) on Aug 13, 2002 at 16:25 UTC
      return {map {$_ => 1} qw /a b c/}
      Or did I understand your questing wrong?

      Abigail