I think you either have to 'use bytes', or make sure you don't use variables that have their utf8 flag set.
in reply to Understanding pack and unpack changes for binary data between 5.8 and 5.10
I've been bitten by one of the changes in perl 5.10 :
pack('V/a*',$a) returns a value with the utf8 flag if $a has it, unless you "use bytes". It didn't do that in perl 5.8.
Am I the only one to find this new behavior very strange ? the value returned by pack('V/a*',$a) is binary, interpreting it as utf8 makes no sense :(