看下面一个例子:
执行结果如下:
显然,在进行数据比较时,undef会被默认转换为数字0进行比较。
#!/usr/bin/perl -w
use strict;
my $var = undef;
if($var > 0){
print "> 0\n";
}
elsif($var == 0){
print "== 0\n";
}
else{
print "< 0";
}
执行结果如下:
[running]test@localhost:/usr/local/app$ perl p.pl
Use of uninitialized value in numeric gt (>) at p.pl line 5.
Use of uninitialized value in numeric eq (==) at p.pl line 5.
== 0
显然,在进行数据比较时,undef会被默认转换为数字0进行比较。