while( $line =~ /\G(.)/g ) { my $this_char = $1; ++$char_in_line; my $ascii = ord $this_char; if( ( $ascii < 32 || $ascii > 126 ) && $ascii != 0 ) { ++$total_bad_chars{$ascii}; printf "filename: %s -- line_n: %d -- char_in_line: %4d -- ascii: %4d\n", $filename, $line_n, $char_in_line, $ascii; } }