chomp関数の使い方(文字列の末尾の改行文字を削除する)

Perl で用意されている組み込み関数の一つである chomp 関数の使い方です。 chomp 関数は対象の文字列の末尾の改行文字を削除します。

(2022 年 09 月 27 日公開 / 2022 年 09 月 27 日更新)

chomp関数の書式と基本的な使い方

chomp 関数は次のように定義されています。

chomp
chomp([VARIABLE])
対象の文字列から末尾の改行文字を削除します。

パラメータ:
  VARIABLE  対象の文字列
戻り値:
  削除された末尾の文字数

1番目の引数には対象となる文字列を指定します。省略された場合は変数「$_」が使用されます。関数が呼び出されると対象の文字列の末尾が改行文字の場合に改行文字が削除されます。戻り値には削除された文字数が返されます。

対象となる文字列そのものに対して削除を行うため、引数には文字列が含まれる変数を指定する必要があります。

「chomp」関数は「chop」関数と似ていますが改行文字だけを削除したい場合に使用します。削除される改行文字は特別な変数「$/」に設定されている値によって異なります。

具体的には次のように記述します。

my $src1 = "abc\n";
chomp($src1);

my $src2 = "abc";
chomp($src2);

この場合、変数「$str1」に格納されていた「abc」から末尾の「\n」が削除され変数「$str1」に「abc」が格納されます。また変数「$str2」に格納されている値には改行文字が含まれませんので、chomp関数を呼び出しても変数「$str2」に格納されている値に変化はありません。

※末尾の文字を無条件で削除する場合は「chop関数」を使用して下さい。

サンプルコード

では簡単なプログラムで確認してみます。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $src1 = "abc\n";
my $src2 = "def";
my $src3 = "ghi\n";
print "削除前 : (start)$src1,$src2,$src3(end)\n";

my $num1 = chomp($src1);
my $num2 = chomp($src2);
my $num3 = chomp($src3);
print "削除後 : (start)$src1,$src2,$src3(end)\n";
print "削除された文字数 : $num1,$num2,$num3\n";

上記を「test10-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

chomp関数

-- --

Perl で用意されている組み込み関数の一つである chomp 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Twitterでシェアする
広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。