Works fine for me, e.g.:
use strict;
my @allow = ("\xA1","\x89","\x94");
my @disallow = ("\xB2","\xFF");
foreach my $char (@allow) {
$char =~ s/[^0-9a-z\x80-\xA5_:,!\?\.\* -]//ig;
print "wrong: char " . ord($char) . " should be allowed\n" if $char
+eq '';
}
foreach my $char (@disallow) {
$char =~ s/[^0-9a-z\x80-\xA5_:,!\?\.\* -]//ig;
print "wrong: char " . ord($char) . " should not be allowed\n" if $c
+har ne '';
}
exit;
(Tested on perl 5.6.1, ActiveState build 631, Windows XP.) Perhaps you could post some examples of specific input items that generate unexpected results?
$perlmonks{seattlejohn} = 'John Clyman';