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