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