Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: how to avoid mis-spelling hash keys?

by graff (Chancellor)
on Jan 05, 2003 at 18:17 UTC ( #224439=note: print w/ replies, xml ) Need Help??

in reply to how to avoid mis-spelling hash keys?

I think that

use fields qw/this_key that_key other_key/;
might be helpful as well; it was introduced in 5.005, is still present in 5.8, and is described nicely both in it's man page and in Damian Conway's excellent book "Object Oriented Perl" (section 4.3, pp. 130-131).

Comment on Re: how to avoid mis-spelling hash keys?
Download Code
Replies are listed 'Best First'.
Re: Re: how to avoid mis-spelling hash keys?
by Gorilla (Sexton) on Jan 05, 2003 at 18:26 UTC
    "use field" and pseudo hash is definitely what I want to avoid, as it is obsoleted, and the syntax affects the way you coding too much.
      I would agree that the new "Hash::Util::lock_keys()" is a neater approch (pg++), but I didn't see anything in the perl 5.8 man page for "fields" to indicate that it was being depricated -- so where did you hear that it is "obsoleted"? (Just curious. I'm sure this pragma has been used by many who were not so offended by it as you seem to be, and they'd want to know...)
        I don't know how reliable this source is: Pseudo hashes will die, but it's not the first time i have heard this news:
        Pseudo hashes (the strange things that appeared with
        the compiler in in 5.005-or-so) will die. They're
        depreciated in 5.8, and will be gone from 5.10, because
        they slow down all hashes and all arrays (by about 15%,
        Schwern calculates). The functionality which currently is 
        implemented with pseudo-hashes ( will remain, 
        probably using the new restricted hashes.


        mmmmm ... restricted hashes
        It is true that pseudo-hash is now deprecated in Perl 5.8 and will be removed in perl 5.10, and this is stated in perlref coming with 5.8.0. (search for pseudo-hash in perlref)

        However the "use fields" pragmas is still there, and will be there for (at least) a while, but likely will point to a different implementation.


        Some monks may not have 5.8 downloaded, let me just add a link to the online version of 5.8 perlref
        I'm not sure what really happened to this discussion (it's quite long ago now - at least seems to be ;-)), but this thread on P5P might answer a lot of your questions.

        A quick search on the P5P-archive might enlighten you, too.



        The pseudo-hash feature has been deprecated as of 5.8.0, but will be retooled in future versions of Perl so they can be used the same way. (Except for fields::phash(), of course...)

        --Brent Dax
        There is no sig.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (2)
As of 2015-11-30 04:54 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (757 votes), past polls