$b = 0; $_ = q(aaa; ; bbb ; "ccc ; ddd ;" ee;e ";" fff ;); $a = join '', map {$b =!$b if /"/; s/;/'&&'/ unless $b; $_} split //; output: aaa&& && bbb && "ccc ; ddd ;" ee&&e ";" fff &&