WindowsとLinuxとで挙動がちがって悩んでます。
Windows: ActivePerl v5.6.0 build 618 と v5.8.0 build 805
Linux: perl v5.6.0 built for i386-linux

ActivePerlでは、open()で改行コードがCRLFなファイルと開くと、
$_に入ってきた時点で、CR部分が抜け落ちているような…。
CRLFなファイルだと、改行部分は "0D 0A"と表示されるはずなんですが、

open(IN, $file);
while(<IN>){
  s/([\x00-\xFF])/sprintf(" %02X", unpack("C",$1))/ge;
  print $_ . "\n";
}
close(IN);

ActivePerlでは、"0A"になり、CRが落ちてしまいますが、
Linuxだとちゃんと "0D 0A"になります。
当然の事ながらファイルをバイナリエディタで開くとCRLFな部分は、
"0D 0A"になってます。

回避方法や何が悪いか、わかる方いません?