use strict; use warnings; use Text::CSV_XS; my $csv = Text::CSV_XS->new({ sep_char => '|' }); foreach my $line () { my $status = $csv->parse($line); if (!$status) { print $csv->error_input() . "\n"; next; } my @cols = $csv->fields(); print join(' # ',@cols); print "\n"; } __DATA__ foo|bar|baz aaa|bbb|ccc ddd|eee|fff