sub to_literal { "'\Q$_[0]\E'" } <--- my $x; for (...) { if (!defined($x)) { <--- $x = to_literal($_); } else { $x = join(', ', to_literal($_)); } } my @a = eval $x;