http://www.perlmonks.org?node_id=22903


in reply to Re: Regexp glitch while parsing record in CSV
in thread Regexp glitch while parsing record in CSV

I have found this collection of replies downright fascinating. Bloody regular expressions, anyway. :)

Given some of the regexp pitfalls that have become obvious as I read through the replies, I find myself thinking that--TMTOWTDI notwithstanding--in this case the "correct" approach might well be the one you've suggested:

<kbd>@record = split( /\s*,\s*/o, $_, 5);
$field4 = $record[3];</kbd>

Judging by q&d benchmarking I did, restricting the split to 5 fields did speed things up a bit. So this approach, while not as sexy as the ones using the regular expressions:
1) gets the job done;
2) isn't breathtakingly fast--but isn't dismally slow, either;
3) is immediately understandable; a complex regexp might lead, later on, to some head-scratching...;
4) ensures, in a simple way, that the leading and trailing spaces are removed. Once more, thanks to all of you for the extensive feedback.

  • Comment on RE: Re: Regexp glitch while parsing record in CSV