どうでもいいけど、$aと$bは例えサンプルでも使わない方がええど。

open(WFP,"$file")||die();
foreach(@data){
($a,$b,$c,$d)=split(',',$_,4);
    print WFP "$a,$b,$c,$d\n";
}
close(WFP);

でないの?