Perlについての質問箱 26箱目
■ このスレッドは過去ログ倉庫に格納されています
0116デフォルトの名無しさん
2006/07/28(金) 08:40:07(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";
■ このスレッドは過去ログ倉庫に格納されています