【发布时间】:2011-06-12 05:30:05
【问题描述】:
我有一段代码无法正常工作。主要是定义的函数不起作用。
@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
print "Job 1 is defined";
}
我得到输出
Job 1 is defined
显然$jobs[1] 是undef。我错过了什么?
【问题讨论】:
我有一段代码无法正常工作。主要是定义的函数不起作用。
@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
print "Job 1 is defined";
}
我得到输出
Job 1 is defined
显然$jobs[1] 是undef。我错过了什么?
【问题讨论】:
由于您使用的是qw,您的代码相当于:
@jobs = ("job1", "undef", "job2");
所以 $jobs[1] 是 string "undef" 与 undef 不同,因此行为。
如果您希望第二份工作是 undef,您可以这样做:
@jobs = ("job1", undef, "job2");
AFAIK 您无法使用 qw 完成此操作。
【讨论】:
print Dumper(\@jobs) 会告诉你数组中有什么