use strict; use warnings; my $if = shift; my ($of = $if) =~ s/\.csv$/.tab/ or die "usage: csv2tab file.csv"; open my $fh_i, "<", $if or die "$if: $!"; open my $fh_o, ">", $of or die "$of: $!"; my $csv = Text::CSV->new ({ binary => 1 }); my $tsv = Text::CSV->new ({ binary => 1, sep_char => "\t" }); while (my $row = $csv->getline ($fh_i)) { $tsv->print ($fh_o, $row); } close $fh_i or die "$if: $!"; close $fh_o or die "$of: $!"