in reply to Reading data from file

Did you escape the pipe | in your split otherwise it is trying to split on nothing or nothing so breaks your data into single characters.

echo"|0|PA|1|||BELL|FRANCIS|D|||1||ANGORA||FLEET|HAMPSHIRE|GU51 2UA|"\ | perl -ne 'print join "+", split /\|/' +0+PA+1+++BELL+FRANCIS+D+++1++ANGORA++FLEET+HAMPSHIRE+GU51 2UA+ echo"|0|PA|1|||BELL|FRANCIS|D|||1||ANGORA||FLEET|HAMPSHIRE|GU51 2UA|"\ | perl -ne 'print join "+", split /|/' |+0+|+P+A+|+1+|+|+|+B+E+L+L+|+F+R+A+N+C+I+S+|+D+|+|+|+1+|+|+A+N+G+O+R+ +A+|+|+F+L+E+E+T+|+H+A+M+P+S+H+I+R+E+|+G+U+5+1+ +2+U+A+|+ +

Cheers,
R.