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; } [download]