Greetings

I have written a script that searches a list of text files for both the filename and searches the text of the files for a match (depending on which button you push, this is TK'd). The filename search is obviously very fast. But the "grep" of the files is extremely slow. I was hoping I could find a way to speed this up. There is a list of 250ish files, and they amount (in total) to no more than 350k. I have implemented a poor mans "cache" to try and speed up the second search for the same value. Here is the code snippet that I'm using for the search:
foreach $filename(@file_array){ chomp ($filename); open (FH,"$filename") or warn "Could not open $filename $!"; while ($line = <FH>){ if ($line =~ /.*$search_value*/i){ ++$matched; $file_listbox->insert('0',"$filename--> $line"); open (RECENT,">>$installpath/recent"); print RECENT "$search_value= $filename--> $line"; $numhash{"$search_value"}="true"; close (RECENT); } } close (FH); }
The search tool shows (as is obvious from above) the whole line that the search value was found on.

Any assistance would be deeply appreciated.

In reply to Faster way? by the_slycer

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.