最新の「新着記事」はここから New!
2008-02-26
chomp関数 - 改行の削除
末尾の改行を取り除くにはchomp関数を使用します。
# 末尾の改行を削除 chomp $line;
chompに関して一つ注意点があります。chompは環境に依存するということです。たとえばWindowsで実行した場合は末尾の「\x0D\x0A」あるいは「\x0A」を取り除きますが、Unix系OSで実行した場合は「\x0A」を取り除きます。\x0Dはキャリッジリターンを、\x0Aはラインフィードを表す特殊文字です。Windowsでは改行文字は「\x0D\x0A」で表されれ、Unixでは「\x0A」で表されます。
このような理由でWindows上で保存したスクリプトと読み込んだテキストファイルを、そのままUnix上に移動させた場合に、正しく改行が取り除かれないということが発生します。環境に依存しないで改行を取り除きたい場合は次のようにします。
# 環境に依存しないで末尾の改行を削除 $string =~ s/\x0D?\x0A?$//;
サンプル
use strict; use warnings; my $message = "I like a cake.\n"; # 行末の改行を削除する chomp($message); print $message;


