in reply to Regex on log file hangs

Untested:
s!iapw_(..)!qq {<font color = "navy" size = "2"><b>\U$1\E} . qq {</b><font color = "#000000" size = "2"><b><i>} . qq { = (file inquiry: old - owners and preowners)} . qq {</i></b></font>}!eg for @a_data;
The only reason for the /e and the qq{} is readability.

Abigail

Replies are listed 'Best First'.
Re: Re: Regular Expression
by Shendal (Hermit) on Aug 13, 2002 at 16:32 UTC
    Seems the text in the parens changes slightly for each of his sub strings. I changed Abigail-II's example to take this into acccount.
    my %text = ( p1 => '(file inquiry - launch page)', p2 => '(file search - replace - operators)', p3 => '(file notepad)', b1 => '(file inquiry: old - owners and preowners)', p0 => '(file search)', c0 => '(file search)', c1 => '(file inquiry)', c3 => '(file notepad)', h1 => '(file and arch inquiry and history)'); s!iapw_(\w\d)!qq {<font color = "navy" size = "2"><b>\U$1\E} . qq {</b><font color = "#000000" size = "2"><b><i>} . qq { = $text{$1}</i></b></font>}!eg for @a_data;

    (Oh, I also tested it -- it works!)
    Cheers,
    Shendal
      It did work just like the first code I have. If I am using a small file it goes fast, but if I am parsing a text log file with 100.000 lines it hangs again!
        In my test, I am completing 100k lines worth of substitution in approximately 4 seconds. Your mileage may vary.

        Can you give an example of the source you are parsing? Perhaps you can anchor your substitutions somewhere? Perhaps the code is "hanging" else where (i.e., have you tried print statements before and after this section to verify that it is where the "hanging" is occuring?)? How long does the program "hang"? Is it consuming CPU while it is "hung"?

        Cheers,
        Shendal