in reply to split $c

% ./splitit.pl -c'\|' < flatfile.pipes
You need to escape the pipe as it is being interpreted by the regexp engine split on null or null. Splitting on null splits between each byte of the string.

--
perl -p -e "s/(?:\w);([st])/'\$1/mg"