小编Dou*_*las的帖子

定义了一些字符串值(“0”、“”和“”),但是 (==undef)

在我的Perl脚本,我使用的if ($a == undef)情况下,我认为这是一样的if (not defined $a),这里$a是从一个CSV文件中读取一个字符串。但是,我注意到定义了几个字符串值("", " ", "0", "-0", "+0", "@", "a",以及许多其他空格和特殊字符),但也定义了undef. 如果undef只对数值,应该能顺利通过"0""+0""-0"。谁能解释一下?我现在明白我不应该用if ($a == undef)来替换if (not defined $a).

我的测试代码是:

@a_array = ("-1", "-0", "0", "+0", "1", "", " ", "@", "a", "\$", "-");
undef $a;
test_a();

foreach $a (@a_array) {
    $len_a = length($a);
    test_a();
}

sub test_a {
    if (defined $a) { print "a = …
Run Code Online (Sandbox Code Playgroud)

perl undef

4
推荐指数
1
解决办法
70
查看次数

标签 统计

perl ×1

undef ×1