in reply to Generating an output file

This is valid when there is no quoted fields with embeded commas:

while (<INPUT>) { chomp; my ($pref,$data) = (/^((?:[^,]*,){3})(.*)/); print OUTPUT "$pref$_\n" for split /,/, $data; }