Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Re: A (memory) poor man's <strike>hash</strike> lookup table.

by BrowserUk (Pope)
on Nov 22, 2003 at 10:01 UTC ( #309142=note: print w/ replies, xml ) Need Help??

in reply to Re: A (memory) poor man's <strike>hash</strike> lookup table.
in thread A (memory) poor man's <strike>hash</strike> lookup table.

Indeed you are correct, my original code is flawed as you describe. Thanks for pointing out my error Cees++

I've re-run a subset of the tests using the following slightly modfied version which corrects this error and the correction slows the insertion time by approximately 1 second for the million keys. The iteration time comes out exactly the same.

print time; $hash{ substr $_, 0, 4 } .= $/. $_ for 1 .. 1_000_000; $hash{$_} .= $/ for keys %hash; # Append a final separator print time; 1069484550 1069484566 # 16 seconds. $n=0; print time; for ( 1 .. 1_000_000 ) { # Ensure no partial matches by prepending and appending # separators to the search key. next unless exists $hash{ substr $_, 0, 4 } and 1+index( $hash{ substr $_, 0, 4 }, $/.$_.$/ ); $n++; } print time, $/, $n; 1069484612 1069484656 # 44 secs. 1000000

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail

Comment on Re: Re: A (memory) poor man's <strike>hash</strike> lookup table.
Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2015-10-04 18:15 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (104 votes), past polls