It does indeed work, its your shell that is translating the newlines. Try redirecting to a file.
update
i'm wrong, i aplogize, but you can always:
while(<>)
{
binmode ARGV;
seek ARGV,0,0;
local $/
$_=<>;
}
UPDATE: well i was almost there, this is kind of stupid, but it'll work as you want it to;
while(<>)
{
close ARGV;
open ARGV, $ARGV or die $!.' '.$ARGV;
binmode ARGV;
binmode ARGV;
local $/;
print $_=<>;
close BINMODE;
}
___crazyinsomniac_______________________________________
Disclaimer: Don't blame. It came from inside the void
perl -e "$q=$_;map({chr unpack qq;H*;,$_}split(q;;,q*H*));print;$q/$q;"