use Modern::Perl; use Text::CSV; my $csv = Text::CSV->new() or die "Cannot use CSV: " . Text::CSV->error_diag(); open my $fh_in, '<', "test.csv" or die "test.csv: $!"; open my $fh_out, '>', "test_new.csv" or die "test_new.csv: $!"; while ( my $line = <$fh_in> ) { my $status = $csv->parse($line); my ( $field1, $field2, $field3, $field4 ) = $csv->fields(); $status = $csv->combine( $field3, $field2, $field1, $field4 ); my $output_string = $csv->string(); print $fh_out $output_string; }