use strict ; use warnings ; print join ",", map { if (m/[,"]/) { s/(\A|"|\n|(?; __DATA__ col1~col2~col3~col4~col5 data11~data12~data13~data14~da,data15 data21~"data22"~d"ata"23~data24~da"ta"25 data31~data32~data33~data34~"data35" data,data41~data42~data43~data44~data45 data51,data52,data,junk,specialchar,sometingdata53~data54~data55