为什么定义的功能不起作用?

时间:2011-01-20 04:54:10

标签: arrays perl string undef

我有一段代码无法正常工作。主要是定义的功能不起作用。

@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
  print "Job 1 is defined";
}

我得到了输出

Job 1 is defined

显然$jobs[1]undef。我错过了什么?

1 个答案:

答案 0 :(得分:10)

由于您使用的是qw,因此您的代码相当于:

@jobs = ("job1", "undef", "job2");

所以$jobs[1]字符串 "undef",它与undef不同,因此也是行为。

如果您希望第二份工作成为undef,您可以这样做:

@jobs = ("job1", undef, "job2");

AFAIK您无法使用qw完成此操作。