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

```my @array = qw /a b c/;
my %hash = map {\$_ => 1} @array;
return \%hash;
```return {map {\$_ => 1} qw /a b c/}