my $csv = Text::CSV->new({ qw! allow_loose_escapes 1 allow_loose_quotes 1 ! }); ... s/x\(([^\(\)]+)\)/"$1"/g; $csv->parse($_);