use warnings; use strict; my $dq = qr{ " [^"]* (?: \\. [^"])* " }xms; my $rec = ; print qq{[[$rec]] \n\n]}; $rec =~ s{ ($dq) }{ (my $r = $1) =~ tr/,/ /; $r; }xmsge; # pre 5.14 # $rec =~ s{ ($dq) }{ $1 =~ tr/,/ /r; }xmsge; # 5.14+ print qq{[[$rec]] \n\n}; __DATA__ 1925,47365,2,650187016,1,1,"MADE, FOR, DRAWDOWNS, NEVER, P/U",16,IFC 8112NP,Standalone-6,,,44,10/22/2015,91607,,B24W02651,,"PA-3, PURE",4/28/2015,1,0,,1,MAN,,CUST,,CUSTOM MATCH,0,TRUE,TRUE,O,C48A0D001EF449E3AB97F0B98C811B1B,POS.MISTINT.V0000.UP.Q,PROD_SMISA_BK,414D512050524F445F504F5331393235906F28561D2F0020,10/22/2015 9:29,10/22/2015 9:30