undef関数:変数や配列を未定義値に設定する

Perl で用意されている組み込み関数の一つである undef 関数の使い方です。 undef 関数は引数に指定した変数などを未定義値(undef)に設定します。

(Last modified: )

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

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

undef
undef([EXPR])
引数に指定した変数、配列、ハッシュ、サブルーチン、型グロブを
未定義値に設定します。

パラメータ:
  EXPR  対象の変数など
戻り値:
  未定義値(undef)

省略可能な 1 番目の引数には対象を指定します。対象は変数の他に配列、ハッシュ、サブルーチン、型グロブが指定できます。指定された引数を未定義値(undef)に設定し戻り値として未定義値(undef)を返します。引数が省略された場合は単に未定義値(undef)を返します。

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

my $var = 10;

undef($var);

引数を省略した場合には、単に未定義値(undef)を返します。サブルーチンの戻り値として未定義値(undef)を返したい場合などに使用します。

サンプルコード

それでは簡単なサンプルを作成します。

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

my $var;
&check($var);

$var = "Test";
&check($var);

undef($var);
&check($var);

sub check{
  if (defined($_[0])){
    print "定義済み\n";
  }else{
    print "未定義値\n";
  }
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

undef関数:変数や配列を未定義値に設定する(1)

変数が未定義値かどうかを判定し結果を画面に出力しました。なお未定義値かどうかの判別には defined 関数を使用しています。詳しい使い方については「defined:未定義値かどうかを判別する」を参照されてください。

-- --

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

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。