James Edward Gray II wrote:

>That works, though I would probably drop the extra variable.
>
>sub contains {
>   my $contained = shift;
>   foreach (@_) { return 1 if $_ eq $contained; }
>   return 0;
>}
>
Perfect. Returns 1 as soon as it finds the element.

>I'm not Randal, but will I do?  <laughs>
>
To my experience, your postings have been highly informative.

>The problem with both of your posted solutions is that they run the 
>entire list of elements.  The question is, "Is $contained in there 
>somewhere?"  That means that the first time we see it, we have answered 
>that question.  If we have 20,000 elements and we find it in the second 
>slot, we waste 19,998 lookups, right?
>
>We can't fix this in the grep() version, because grep() finds ALL 
>matches, not just the first.  It must walk the list to do its job.  
>However, I snuck in a fix for your version above.  Go take a peak...

Your suggestion is certainly a "peak" in elegant programming. ;)

Thanks! Jan
-- 
Either this man is dead or my watch has stopped. - Groucho Marx

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to