どのようにチェックインPerlの変数を含む undef

課題です。 このコードは、Perlプログラミング言語の変数となります。 かチェックする必要がありこの変数の値 undef です。

この決定

変数を含む undef の場合のみ機能 defined の変数はfalseを返します。 こちらのコードを表示する 場合にテキストに変数を含む undef:

▶ Run
#!/usr/bin/perl

my $foo;

if ( !defined($foo) ) {
    print "foo is undef";
}

を誤った決定

確認 undef 変数を使用する必要があり defined. では、多くの場合 何をチェック undef 用その他、間違いない。

ここではどのように行ってはならないものとします:

▶ Run
#!/usr/bin/perl

my $foo;

if ( !$foo ) { # error!
    print "foo is undef";
}

この例では、文字列 foo is undef の場合は変数 $foo の値 undef, そのコードを印刷す。 例えば、 $foo の数 0 または空の文字列 ''. このコードがないことを確認するに $foo を含む undef, ていることを確認 $foo の値がfalseの場合、絶対と同じではありません undef.

次の例は誤った検証 undef:

▶ Run
#!/usr/bin/perl

my $foo;

if ( $foo == undef ) { # error!
    print "foo is undef";
}

にあるすべて完全に間違っています。 の場合は変数 $fooの 値が含まれてい undefこのコード印刷 場所 foo is undefのコードを印刷す。 例えば、変数 $fooを含む 文字列 'Hello'.

のオペレーター == での比較。 をご利用いただきますようよろしの比較このオペレーターに変換し、その引数の数が多い。 変数 $foo である undef の番号 0. と undef の右側のオペレーターがなかなかの数 0. ゼロゼロ を条件にすることができます。 がゼロにすると一部のラインは、例えば 'Hello'.

を追加した場合、このコード use strict;use warnings;、Perlを出力します foo is undefので、お知らせいつう 何かと不思議:

Use of uninitialized value in numeric eq (==) at script.pl line 8.
Use of uninitialized value $foo in numeric eq (==) at script.pl line 8.
foo is undef

一般のは、いつでも良い練習にも利用 use strict; および use warnings;.

関連する話題

その他の記事