【问题标题】:Why does defined function not work?为什么定义的函数不起作用?
【发布时间】: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。我错过了什么?

【问题讨论】:

    标签: arrays perl string undef


    【解决方案1】:

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

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

    所以 $jobs[1]string "undef"undef 不同,因此行为。

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

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

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

    【讨论】:

    • @user582452 - 数据转储器(例如 Data::Dumper - search.cpan.org/dist/Data-Dumper )是您的朋友。 print Dumper(\@jobs) 会告诉你数组中有什么
    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2015-08-27
    • 2016-04-25
    • 2014-08-06
    • 2015-02-20
    • 2021-08-20
    • 2021-07-25
    相关资源
    最近更新 更多