Without looking too deeply at the specifics, if you're constructing an array of items already seen, and checing the next item against every item in the array to make sure you haven't already seen it, there is definately another way to do it. You might consider using a hash instead.

my @things = qw/homer bart marge maggie lisa kramer jerry george elaine marge lisa/; my %seen; foreach my $thing ( @things ) { next if exists $seen{$thing}; $seen{$thing}++; # Do your stuff here. }

The above snippet keeps track of whether or not something's been seen already, and if it has, it skips to the next thing. If it hasn't seen it before, it makes a note of that thing, and then lets you do whatever processing you want.

The hash lookup is much faster than grep on an array.


Dave


"If I had my life to live over again, I'd be a plumber." -- Albert Einstein

In reply to Re: Quicker Array Searching by davido
in thread Quicker Array Searching by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.