in reply to Re^9: Perl custom sort for Portuguese Lanaguage
in thread Perl custom sort for Portuguese Lanaguage

So more or like like this:?

Closer, but then this no longer filters comments that contain the sep character (e.g. add "# This is a comment, too" to my example above)...

Update: I realize this is less likely when sep=>'|', but my question is basically whether there's a "generic" way to filter lines. For example, I could load the file into memory and do s/^\s*#.*(?:\n|\z)//mg, but that would break any CSV data that contains embedded newlines that happen to match this pattern. In other words, with Text::CSV_XS, filter is only applied after parsing fields like "#foo" or \#foo to #foo, and I'm wondering if there's a hook into the parser before that takes place?

Update 2: In the CB, you suggested in => \do { local $/; <DATA> =~ s/^\s*#.*(?:\n|\z)//mgr }, which gets closer as well, though it breaks this test case. Just for completeness, here are all the test cases so far combined into one data set:

# This is a comment not,a,comment # This is a comment, too not,a,comment "#not",a,comment \#also,not,"a comment" foo,"bar # Not a comment, either! quz",baz