in reply to what's faster than .=

Copying byte by byte is not a good idea. Imagine the PCI-bus working just as much on one byte as 65k bytes ;) (Depends on OS, PCI, etc)

I'm not sure how relevant it is in this particulare case, but you can preallocate hashes with "keys(%HASH) = 100;".

If you really have to work with one byte at a time, you should atleast consider reserving the memory you'll be using and writing directly to a memory address; Maybe embed some C/C++ code to do that particiular task.

address++ = byte;

My 0.002 cents