Perlゼミ

  1. Perl
  2. 標準関数
  3. here

chomp関数 - 改行を削除する

chomp関数を使用すると、改行を削除することができます。

# 末尾の改行を削除
chomp $line;

OSに依存しないで改行を削除する

chompに関して一つ注意点があります。chompは環境に依存するということです。たとえばWindowsで実行した場合は末尾の「\x0D\x0A」あるいは「\x0A」を取り除きますが、Unix系OSで実行した場合は「\x0A」を取り除きます。\x0Dはキャリッジリターンを、\x0Aはラインフィードを表す特殊文字です。Windowsでは改行文字は「\x0D\x0A」で表されれ、Unixでは「\x0A」で表されます。

このような理由でWindows上で保存したスクリプトと読み込んだテキストファイルを、そのままUnix上に移動させた場合に、正しく改行が取り除かれないということが発生します。環境に依存しないで改行を取り除きたい場合は正規表現を使って次のようにします。

# 環境に依存しないで末尾の改行を削除
$string =~ s/\x0D?\x0A?$//;

サンプル

chomp関数を使ったサンプルです。

use strict;
use warnings;

my $message = "I like a cake.\n";

# 行末の改行を削除する
chomp($message);
print $message;
Perlの書籍
  • 初めてのPerl 第7版

    Perl入門 定番の一冊
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
  • 詳説 正規表現

    正規表現の詳細な解説
  • Perlの書籍販売 14冊 »
自己紹介
木本裕紀(きもとゆうき)

Twitter

フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎
Perlの求人広告募集中