2

我有一段代码不能像我预期的那样工作。主要是定义的功能不起作用。

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

我得到输出

Job 1 is defined

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

4

1 回答 1

10

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

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

与行为不同$jobs[1]字符串 "undef"也是如此。undef

如果你想成为第二份工作,undef你可以这样做:

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

AFAIK 你无法使用qw.

于 2011-01-20T04:57:09.460 回答