in reply to Unable to read in a .bin file.

As others have pointed out when $ch gets the character '0' (zero) the while expression is false and the loop ends. Another way to do what you want:
$/ = \1; # Set Input Record Separator to one byte while ( my $ch = <FILE> ) {
This will work no matter what the value of $ch is.