$str = join '', map{chr}0..255; $str =~ tr/\11\12\40-\176//cd; # ascify aka remove all crap chars print $str, $/; #### while () { while ( m/([^\x09\x0A\x20-\x7E])/g ) { printf "Found chr %d on line %d at pos %d\n", ord($1), $., pos($_); } }