$line=s/((?:^|,)(?:~[^~]*~|[^,]*)|,)/$_=($1 eq ",")? ",~~": $1/ge;