Re: Dynamically creating a hash for keys()

[email protected] ("Aaron J. Mackey")
Newsgroups perl.fwp
Message-ID <[email protected]>
"reverse" returns a list, not a hash; "keys" expects to see something 
that starts with %.  So you could do this to actually dereference an 
anonymous hash (your version didn't actually make an anonymous hash):

   print keys %{ { reverse %hash } };

Of course you could have just done:

   print values %hash;

(but of course non-unique values would be printed twice).

-Aaron

On Oct 19, 2004, at 9:50 AM, Jason Foster wrote:

> Can anyone help me to understand why this code refuses to compile?  
> Even better, can anyone help fix it :)
>
>     %hash = qw( fred filntstone barney rubble tom delong );
>     print( keys( reverse( %hash ) ) );
>
> The error message...
>
>     Type of arg 1 to keys must be hash (not reverse) at ./killme.pl 
> line 4, near ") ) "
>
> ... was pretty confusing since it implies that "reverse" is a type?!
>
> I tried making an anonymous hash as follows...
>
>     print( keys( %{ reverse( %hash ) } ) );
>
> ... but got no results at all.
>
> Help!
>
>
--
Aaron J. Mackey, Ph.D.
Dept. of Biology, Goddard 212
University of Pennsylvania       email:  [email protected]
415 S. University Avenue         office: 215-898-1205
Philadelphia, PA  19104-6017     fax:    215-746-6697
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.