#!/usr/bin/env perl
use strict;
use warnings;
use Text::CSV;
my $csv = Text::CSV::->new() or die Text::CSV::->error_diag();
while (my $row = $csv->getline(\*DATA)) {
print join('|' => @$row), "\n";
}
__DATA__
aaa,bbb,"ccc, ddd",fff
####
$ pm_csv_to_psv.pl
aaa|bbb|ccc, ddd|fff
####
print join('|' => map { /,/ ? '"'.$_.'"' : $_ } @$row), "\n";
####
$ pm_csv_to_psv.pl
aaa|bbb|"ccc, ddd"|fff