in reply to Re: Comparison effeciency
in thread Comparison effeciency

Thanks, you're right, the split should not be in the loop. Now, as a follow up, how would you check for multiple existences in the hash, and count them as you go along? Also, if you wouldn't mind, could you explain what exactly the ||= operator does. Thanks again!

Replies are listed 'Best First'.
Re: Re: Re: Comparison effeciency
by Masem (Monsignor) on Apr 05, 2001 at 05:14 UTC
    ||= either sets the variable on the left hand side to the value on the left hand side (unmodified, IOW) if it's not false, or sets it to the right hand side value. Now that I think about it, it's not necessary in this case ( you can just do $not_found = (!defined(...), and last to escape the loop...), but it's useful for optional parameters from command line or CGI scripts.

    Now, are you talking about multiple existences in your original array? To do that, simply apply a similar approach, as an example...

    my %hash; foreach $item (@array) { $hash{ $item } = ( !defined( $hash{ $item } ) ) ? $hash{ $item }++ : 1; }
    Which will count and enumerate all duplicates in your list.
    Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain