Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: The fastest way of searching a certain element in an array

by mlh2003 (Scribe)
on Jan 18, 2005 at 11:28 UTC ( #422976=note: print w/replies, xml ) Need Help??

in reply to The fastest way of searching a certain element in an array

Out of curiosity, I also tried the benchmark script with a sub using the join and index functions as follows:
my %subs = ( join_index => sub { my $joined = '#' . join('#', @Array) . '#'; return (index($joined, '#TEST#') >= 0) ? 1 : 0; }, grep_block => sub { GREP: { grep { $_ eq TEST and next GREP } @Array; return; } continue { return 1; } }, ... etc.
It seemed to fare better when the match was towards the end of the 'joined' string (Fastest at matching positions 0.8 and 0.9 out of all the other subs on my machine). The interesting thing was that it yielded similar rates for all matching positions. It could be that the join function is expensive compared to the index function (likely), so the timing is swamped by joining the elements in the array. Which also indicates that the index function is FAST...

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2021-10-26 21:27 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (91 votes). Check out past polls.