>>115
(2)は\x0d をエスケープせずに表示したからカーソルが行頭に戻ってる。
改行コードにまつわる問題を追跡するときは、デバッグ表示に何らかのエスケープを行うこと

encoding ありの場合は $/ と実際の改行が異なるのでchompではうまく処理できない。
$/ を変更するか、s/[\x0d\x0a]+//g を使うこと

#!/usr/bin/perl -w
use encoding 'shiftjis';
sub uriescape($){my $a=shift;$a=~s/(\W)/'%' . unpack('H2', $1)/eg;return $a}
print "IRS=",uriescape($/),"\n";
my @list = <STDIN>;
print "before: ",join(',',map{uriescape $_} @list),"\n";
chomp(@list);
print "after: ",join(',',map{uriescape $_} @list),"\n";