loody wrote:
>> if( exists $data{$key} ){
>> print "\t\$data{$key} exists\n";
>
> thanks for your kind help.
> Could I get the conclusion that exists is only used for determining
> the element of hash and arrays?
> appreciate your help,
Consider this program.
use strict;
use warnings;
my @array;
$array[0] = 'a';
$array[2] = undef;
my %hash;
$hash{a} = 1;
$hash{c} = undef;
Now,
exists $array[1] and exists $hash{b} will be false.
exists $array[2] and exists $hash{c} will be true.
defined $array[1], defined $array[2], defined $hash{b}, and defined $hash{c}
will all be false.
So an array or hash element may exist but have an undefined value. defined()
will return true only if the elements exists and has a defined value. exists()
will return true if the element exists, regardless of its value.
Note also that undef $array[0] and undef $hash{a} leave the element in existence
but make its value undefined, while delete $array[0] and delete $hash{a} make
the element non-existent.
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/