If you don't know what to expect in return, unpack's not the right function for the job.
No. A file (whether binary or text) is just a stream of bytes. Text files are said to be stored line-by-line because, in certain places, they have specific characters. $/ is also known as the Input Record Separator because it contains that special character -- usually a newline. The I/O routines read a chunk of bytes from a file and split it up based on the presence of whatever's in $/. That happens to default to \n. In a binary file, there are no lines.
It's a nice power of two, and it fits nicely across the screen. No real technical reason of which I'm aware.