Bruce.です。
藤岡さんの更新日記4/26のエントリから
> LaCoocanでPerlのCGIを動かしていて気が付いたのだが、Windows上のPerlの
> ように読み込むテキストファイルの改行文字CR+LF をLFに変換して読み込ん
> でくれないんだ。
perldoc perlio してみると
:crlf
A layer that implements DOS/Windows like CRLF line endings. On read
converts pairs of CR,LF to a single "\n" newline character. On write
converts each "\n" to a CR,LF pair. Note that this layer likes to be
one of its kind: it silently ignores attempts to be pushed into the
layer stack more than once.
という記述が見つかります。
あるいは $/ に "\r\n" をセットしてからchompするとか。
use strict;
use warnings;
binmode STDIN;
my $l1 = <>;
my $l2 = $l1;
print unpack('H*', $l1), "\n";
chomp $l1;
print unpack('H*', $l1), "\n";
$/ = "\r\n";
chomp $l2;
print unpack('H*', $l2), "\n";
E:\work\script>echo hello|perl chomp.pl
68656c6c6f0d0a
68656c6c6f0d
68656c6c6f
いじょ。