#!/usr/bin/env perl use warnings; use strict; use Text::CSV; my $csv = Text::CSV->new({ binary=>1, auto_diag=>2, eol=>$/, always_quote=>1 }); open my $ifh, '<', 'NRoomch.txt' or die $!; open my $ofh, '>', 'output.txt' or die $!; while ( my $row = $csv->getline($ifh) ) { $row->[1]='P'; # your logic to modify 2nd column here $csv->print($ofh, $row); } $csv->eof or $csv->error_diag; close $ifh; close $ofh;