Help for this page
use strict ; use warnings ; ... data31~data32~data33~data34~"data35" data,data41~data42~data43~data44~data45 data51,data52,data,junk,specialchar,sometingdata53~data54~data55
print join '",', map { s/(\A|"|\n)/"$1/g ; $_ } split /~/ while <DATA> +;