为什么定义的函数不起作用?

发布于 2024-10-13 02:40:14 字数 265 浏览 2 评论 0原文

我有一段代码无法按我期望的方式工作。主要是定义的函数不起作用。

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

我清楚地得到输出

Job 1 is defined

$jobs[1]undef。我缺少什么?

I have a piece of code which does not work as I expect it to work. MAinly the defined function does not work.

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

I get the output

Job 1 is defined

clearly $jobs[1] is undef. What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似最初 2024-10-20 02:40:14

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

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

因此 $jobs[1]string "undef" 与 undef 不同,因此其行为也不同。

如果您希望第二个作业是 undef,您可以这样做:

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

据我所知,您无法使用 qw 完成此操作。

Since you are using qw, your code is equivalent to:

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

So $jobs[1] is the string "undef" which is not same as undef and hence the behavior.

If you want the second job to be an undef you can do:

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

AFAIK you cannot get this done using qw.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文