[Chicago-talk] Performance issue

Steven Lembark lembark at wrkhors.com
Thu Apr 21 06:30:11 PDT 2011

On Wed, 20 Apr 2011 22:42:56 -0500
Jay Strauss <me at heyjay.com> wrote:

> I was under the impression that regexs were slow.

In general replacing the contents of a string in-place
will take much less time than using a regex to break 
up the string into an array and then paste the array
back together. 

For example, stripping the closing quote with a regex
should be quite fast:

    while( <> )
        s{^ \s*? " }{}x;    # shortest match to the first quote
        s{ " \s*  $}{}x;    # shortest match to the end of line

        s{ [|] }{-}gx;      # pipes to dashes
        s{ ,   }{|}gx;      # commas to pipes

        # use the line here

should be about the fastest way you can perform the

I'd suggest avoiding a "substr $x, -2" to strip the 
trailing quote since any minor change in the file
format (e.g. the source providing ^M^J instead of just
^J for the line endings) will completely break the 
process. With the regex you always get everything after
the final quote stripped.

Steven Lembark                                             3646 Flora Pl
Workhorse Computing                                   St Louis, MO 63110
lembark at wrkhors.com                                      +1 888 359 3508

More information about the Chicago-talk mailing list