Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^2: Perl oddities

by fergal (Chaplain)
on Mar 01, 2005 at 16:04 UTC ( #435497=note: print w/ replies, xml ) Need Help??


in reply to Re: Perl oddities
in thread Perl oddities

Update: Nonsense below, I misread the post.

It would be much more useful, or sensible, if hash in a scalar context returned the number of keys:
As soon as you try to use it as a number, "2/8" will be numified to 2 so actually it does effectively return the number keys.
perl -le '%h = (a =>1, b => 2); print %h+0' 2
The number of buckets is some bonus info for free.


Comment on Re^2: Perl oddities
Download Code
Re^3: Perl oddities
by jmcnamara (Monsignor) on Mar 01, 2005 at 16:26 UTC

    In the above case yes but as the number of keys is increased the buckets will get reused and the result won't be correct:
    $ perl -le '%h = (1 .. 10); print scalar %h' 5/8 $ perl -le '%h = (1 .. 12); print scalar %h' 5/8 $ perl -le '%h = (1 .. 100); print scalar %h' 33/64
    :-)

    Actually, I searched for a genuine use for this feature for a long time and I almost found one: Power Twool.

    --
    John.

      Oops. I completely misread your original post. I thought it was elements/buckets, not used/total. That said, given Perl's non-object data model, the only other way to provide this info would be through yet another function.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2014-11-26 21:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (174 votes), past polls