On my system (Fedora 17, perl v5.14.3) it strips out hex 0D (CR) in both cases. Handling of line terminators is documented as being system-dependent, though. Without knowing exactly which character being deleted (and the characters before and after it) and what flavor of system you are running on it's hard to guess what the problem might be. You might try this and see if the two dumps are different; if they are you can start looking at sg_logs rather than at your perl script...
sg_logs --page=0x34,1 pd1 -H -r > temp.bin
od -x temp.bin | head
sg_logs --page=0x34,1 pd1 -H -r | od -x | head