use strict; use warnings; my $param = 'abe '.chr(155).chr(156).'lincoln'; warn $param; $param =~ s/[^a-zA-Z0-9\.\-\=\+\!\@\#\$\%\^\&\*\?\ \x80-\x97\xa0-\xa5]//g; die $param; __END__ abe ¢£lincoln at regexS.pl line 4. abe lincoln at regexS.pl line 6. #### use strict; use warnings; #use utf8; my $param = 'abe '.chr(133).' in range lincoln '.chr(152).' out of range'; #my $param = "abe \x85 in range lincoln \x98 out of range"; print $param,$/; $param =~ s/[^a-zA-Z0-9\.\-\=\+\!\@\#\$\%\^\&\*\?\ \x80-\x97\xa0-\xa5]/X/g; print $param,$/; __END__ E:\dev\LOOSE>perl regex.utf8.pl abe à in range lincoln ÿ out of range abe à in range lincoln X out of range E:\dev\LOOSE>perl -Mutf8 regex.utf8.pl abe à in range lincoln ÿ out of range abe X in range lincoln X out of range E:\dev\LOOSE>G:\perl\bin\perl regex.utf8.pl abe à in range lincoln ÿ out of range abe à in range lincoln X out of range E:\dev\LOOSE>G:\perl\bin\perl -Mutf8 regex.utf8.pl abe à in range lincoln ÿ out of range abe à in range lincoln X out of range E:\dev\LOOSE>