# the manual way, hunting over the keyboard, and worrying about # possibly escaping certain specials (truncated example) @s = qw(! @ # $ % ^ & *); # investigation of the ASCII table shows the special characters are # in chunks, which we can convert into the real characters using map @s = map { chr } 33..47,58..64,91..96,123..126; # this can also be done without knowing where the special characters # are with a grep for printable non-alphanumeric non-whitespace chars @s = grep { /[[:print:]]/ and /[^a-zA-Z0-9\s]/ } map { chr } 1..128;