Like this?
#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11143026
use warnings;
use List::AllUtils qw( sort_by );
print <<'EOF';
.,-;:!?"'`_#$%&*+/|=@\^~()<>[]{}0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmN
+nOoPpQqRrSsTtUuVvWwXxYyZz intended sequence
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde
+fghijklmnopqrstuvwxyz{|}~ natural ASCII sequence
EOF
my @list = qw{ "Hello" Abel (hello) {adieu} @adieu [goodbye] Charlie ^
+Charlie ~Adieu zebra 21708 baker . - ; : ! ? " ' ` _ };
my @normalsorted = sort @list;
print "@normalsorted\n\n";
my @newsorted = sort_by { tr/ .,\-;:!?"'`_#$%&*+\/|=@\\^~()<>[]{}01234
+56789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz/ -~/r } @li
+st;
print "@newsorted\n\n";
Outputs:
.,-;:!?"'`_#$%&*+/|=@\^~()<>[]{}0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmN
+nOoPpQqRrSsTtUuVvWwXxYyZz intended sequence
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde
+fghijklmnopqrstuvwxyz{|}~ natural ASCII sequence
! " "Hello" ' (hello) - . 21708 : ; ? @adieu Abel Charlie [goodbye] ^C
+harlie _ ` baker zebra {adieu} ~Adieu
. - ; : ! ? " "Hello" ' ` _ @adieu ^Charlie ~Adieu (hello) [goodbye] {
+adieu} 21708 Abel baker Charlie zebra