tr/// works very quickly and is what i need, but after some searching around, i found it is not possible to use a variable with tr/// as in "tr/\$_//". so that means in order to get statistics of the whole file, i am going to have to write out =~tr/\x00// all the way thru =~ tr/\xff// lol 255 different instances. not a big deal but i could have made what i have now into a subroutine and passed each element out of an array (x00 - xff) to tr///.