我有一段代码无法正常工作。主要是定义的功能不起作用。
@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
print "Job 1 is defined";
}
我得到了输出
Job 1 is defined
显然$jobs[1]
是undef
。我错过了什么?
答案 0 :(得分:10)
由于您使用的是qw
,因此您的代码相当于:
@jobs = ("job1", "undef", "job2");
所以$jobs[1]
是字符串 "undef"
,它与undef
不同,因此也是行为。
如果您希望第二份工作成为undef
,您可以这样做:
@jobs = ("job1", undef, "job2");
AFAIK您无法使用qw
完成此操作。