[perlメモ]配列やハッシュが未定義かどうかチェックするには
配列やハッシュが定義されているかどうかチェックするにはdefinedを使います。
文法は
defined EXPR
となります。
引数として、定義されているか判断したいハッシュや配列を渡したりして使用します。
定義されている場合、definedは真を返します。
サンプルソースとその実行結果を見ると一目瞭然です。下の様にそのハッシュに何らかの値が入っているかどうか(たとえ空白文字だとしても)をチェックする場合に便利です。下の様にたとえ空白を入れたとしてもdefinedは真を返します。
$itemCode{‘1111’}=’’;
defuned($itemCode{‘1111’})
◎サンプルソース
#! /usr/bin/perl
#use strict;
#use warnings;
my %aaa = ();
my @aaa = ();
my @bbb = (‘bbb’);
$aaa{"aaa"} = "";
$aaa{"bbb"} = 0;
$aaa{"ccc"} = 2;
print ‘1:$aaa{"aaa"}=’.defined($aaa{"aaa"})."\n";
print ‘2:$aaa{"bbb"}=’.defined($aaa{"bbb"})."\n";
print ‘3:$aaa{"ccc"}=’.defined($aaa{"ccc"})."\n";
print ‘4:$aaa{"ddd"}=’.defined($aaa{"ddd"})."\n";
print ‘5: @aaa=’.defined(@aaa)."\n";
print ‘6: @bbb=’.defined(@bbb)."\n";
print ‘7: %aaa=’.defined(%aaa)."\n";
print ‘8: %bbb=’.defined(%bbb)."\n";
◎実行結果
1:$aaa{"aaa"}=1
2:$aaa{"bbb"}=1
3:$aaa{"ccc"}=1
4:$aaa{"ddd"}=
5: @aaa=
6: @bbb=1
7: %aaa=1
8: %bbb=