c:\@Work\Perl>perl -wMstrict -MO=Deparse,-p -le "my $line = qq{xyz\x80\x90\xa0abc}; print qq{'$line'}; ;; $line !~ s/[^[:ascii:]]//g; print qq{'$line'}; " Useless use of negative pattern binding (!~) in void context at -e line 1. BEGIN { $^W = 1; } BEGIN { $/ = "\n"; $\ = "\n"; } use strict 'refs'; (my $line = "xyz\200\220\240abc"); print("'${line}'"); (not ($line =~ s/[^[:ascii:]]//g)); print("'${line}'"); -e syntax OK