Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

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).

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 all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (9)
As of 2018-06-23 16:24 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.