# Replace with space $myline =~ s/[^\x00-\x7F]/ /g; # Delete character $myline =~ tr/\x00-\x7F//cd; $myline =~ s/[^\x00-\x7F]//g; #### use Test::More tests => 4*7; use Encode qw( decode encode ); my $enc = 'US-ASCII'; my $spc = encode($enc, ' '); for ( [ "abc", "abc", "abc" ], [ "abc\x{80}\x{81}", "abc ", "abc" ], [ "abc\x{2660}\x{2661}", "abc ", "abc" ], [ "abc\x{80}\x{81}\x{2660}\x{2661}", "abc ", "abc" ], ) { { (my $x = $_->[0]) =~ s/[\x80-\xff]/ /g; is($x, $_->[1], 'linuxer s sub'); } { (my $x = $_->[0]) =~ s/[^\x00-\x7F]/ /g; is($x, $_->[1], 'ikegami s sub'); } { my $x = decode($enc, encode($enc, $_->[0], sub { $spc })); is($x, $_->[1], 'encode sub'); } { (my $x = $_->[0]) =~ tr/\x80-\xff//d; is($x, $_->[2], 'linuxer tr del'); } { (my $x = $_->[0]) =~ tr/\x00-\x7F//cd; is($x, $_->[2], 'ikegami tr del'); } { (my $x = $_->[0]) =~ s/[^\x00-\x7F]//g; is($x, $_->[2], 'ikegami s del'); } { my $x = decode($enc, encode($enc, $_->[0], sub { '' })); is($x, $_->[2], 'encode del'); } } #### ok 1 - linuxer s sub ok 2 - ikegami s sub ok 3 - encode sub ok 4 - linuxer tr del ok 5 - ikegami tr del ok 6 - ikegami s del ok 7 - encode del ok 8 - linuxer s sub ok 9 - ikegami s sub ok 10 - encode sub ok 11 - linuxer tr del ok 12 - ikegami tr del ok 13 - ikegami s del ok 14 - encode del not ok 15 - linuxer s sub ok 16 - ikegami s sub ok 17 - encode sub not ok 18 - linuxer tr del ok 19 - ikegami tr del ok 20 - ikegami s del ok 21 - encode del not ok 22 - linuxer s sub ok 23 - ikegami s sub ok 24 - encode sub not ok 25 - linuxer tr del ok 26 - ikegami tr del ok 27 - ikegami s del ok 28 - encode del # Looks like you failed 4 tests of 28.