Another direction which you may want to is look at your data strorage itself.

The storage of data within a list structure, such as a flat-text file, means that all subsequent data searches will take O(n), that is, the time taken to search the dataset will scale linearly with the growing size of the dataset. Alternatively, if you were to migrate your data storage to a DBM or serialised hash structure, your subsequent lookup times would be O(1), that is, a constant time, irrelevant of the size of your dataset (eg. a lot faster).

Also too, the migration of your dataset to a hash structure would allow for the establishment of more complex data structures than currently allowable - For example, what happens currently when your data contains a | character?

Update - Also too, you could make use of Tie::Hash::Approx written by OeufMayo in place of your $s =~ /$d/g match if you index your hash by the value in the variable $d (assuming it is unique).

 

perl -e 's&&rob@cowsnet.com.au&&&split/[@.]/&&s&.com.&_&&&print'


In reply to Re: Faster Flat File by rob_au
in thread Faster Flat File by Buzz

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.