in reply to Re: Looking for ways to speed up the parsing of a file...
in thread Looking for ways to speed up the parsing of a file...

As to the final suggestion, it might be more efficient to replace what is in effect two regexes (plus some logic) with just one:

>perl -wMstrict -e "for (@ARGV) { my @s = m{ \S+ }xmsg; local $\" = ':'; print qq('$_' :@s: \n); } " "" " " " " " " " " "foo" " foo" "foo " " foo " "foo bar" " foo bar" "foo bar " " foo bar " "foo bar baz" " foo bar baz" "foo bar baz " " foo bar baz " '' :: ' ' :: ' ' :: ' ' :: ' ' :: 'foo' :foo: ' foo' :foo: 'foo ' :foo: ' foo ' :foo: 'foo bar' :foo:bar: ' foo bar' :foo:bar: 'foo bar ' :foo:bar: ' foo bar ' :foo:bar: 'foo bar baz' :foo:bar:baz: ' foo bar baz' :foo:bar:baz: 'foo bar baz ' :foo:bar:baz: ' foo bar baz ' :foo:bar:baz:

Replies are listed 'Best First'.
Re^3: Looking for ways to speed up the parsing of a file...
by Anonymous Monk on May 17, 2008 at 22:15 UTC
    Or probably even more efficient, come to think of it, just to use the default  split parameters:

    >perl -wMstrict -e "for (@ARGV) { my @s = split; local $\" = ':'; print qq('$_' :@s: \n); } " "" " " " " " " " " "foo" " foo" "foo " " foo " "foo bar" " foo bar" "foo bar " " foo bar " "foo bar baz" " foo bar baz" "foo bar baz " " foo bar baz " '' :: ' ' :: ' ' :: ' ' :: ' ' :: 'foo' :foo: ' foo' :foo: 'foo ' :foo: ' foo ' :foo: 'foo bar' :foo:bar: ' foo bar' :foo:bar: 'foo bar ' :foo:bar: ' foo bar ' :foo:bar: 'foo bar baz' :foo:bar:baz: ' foo bar baz' :foo:bar:baz: 'foo bar baz ' :foo:bar:baz: ' foo bar baz ' :foo:bar:baz: