perl - perl +识别参数是否为ARG中的空值

标签 perl

当我运行以下没有参数的script.pl脚本时:

./script.pl

我没有收到消息No arg。为什么?如何识别$param是空值还是空值,与ksh的[ -z一样?
#!/usr/bin/perl
my $param = $ARGV[0];
if ($param = "") {
    print No arg;
} else {
    print arg: $param;
}

最佳答案

因为它不是Perl。您从哪里学到的语法?太不对劲了。

  • $param = ""$param分配一个空字符串,这不是您想要的。
  • null在Perl中拼写为 undef
  • 要比较字符串,请使用 eq operator
  • 您必须quote字符串:print "No arg"

  • 容易得多:
    #!/usr/bin/perl
    if (@ARGV) {
        print 'have parameters';
    } else {
        print q{don't have parameters};
    }
    

    关于perl - perl +识别参数是否为ARG中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3341703/

    相关文章:

    perl - 检查静默终端命令写入文件的进度?

    perl以4位数格式打印当前年份

    perl - 在perl中的多个子例程调用中保留变量的值

    perl 重载连接运算符 (".") 问题

    string - 如何在 Perl 中反转一串数字?

    mysql - 抛出“不是数组引用”错误

    perl - Perl 方法调用可以被拦截吗?

    Perl fork 和kill - Kill(0, $pid) 总是返回1,并且不能杀死子进程

    regex - bash - 如何从 bash 脚本中将换行符传递给 perl?

    arrays - 数组内数组的插值