Perlのdefindeとexists
definde
はkeyがあってもundefならfalseになる。
exists
はkeyがあればtrueになる。
#!/usr/bin/env perl use strict; use warnings; use utf8; my $result; $result->{test1} = 'undefind...'; $result->{test2} = ''; $result->{test3} = undef; #defined { if ( defined $result->{test1} ) { print 'defined test1 is ok' . "\n"; } if ( defined $result->{test2} ) { print 'defined test2 is ok' . "\n"; } if ( defined $result->{test3} ) { print 'defined test3 is ok' . "\n"; } if ( defined $result->{test4} ) { print 'defined test4 is ok' . "\n"; } ### output ### ##defined test1 is ok' ##defined test2 is ok' } #exists { if ( exists $result->{test1} ) { print 'exists test1 is ok' . "\n"; } if ( exists $result->{test2} ) { print 'exists test2 is ok' . "\n"; } if ( exists $result->{test3} ) { print 'exists test3 is ok' . "\n"; } if ( exists $result->{test4} ) { print 'exists test4 is ok' . "\n"; } ### output ### ##exists test1 is ok' ##exists test2 is ok' ##exists test3 is ok' }