use strict; use warnings; my @chunks = split '"', do{local $/; }, -1; s/(?<=.)\s*\n\s*(?=.)/ /g for @chunks; print join '"', @chunks; __DATA__ "boom" hello "" bill "baz hello jock" "boom2" abc "baz2 hello2 jock2 "