代码之家  ›  专栏  ›  技术社区  ›  Rich

将零传入Getopt::Std

  •  4
  • Rich  · 技术社区  · 15 年前

    我正在使用 Getopt::Std 在Perl脚本中,并希望传入一个零作为值。我正在检查是否使用 unless() . 目前 除非()

    有没有办法 接受零作为有效值(任何非负整数都有效)。

    这可能非常简单,但几天前我从未接触过Perl!

    富有的

    2 回复  |  直到 15 年前
        1
  •  10
  •   DVK    15 年前

    你需要使用 unless defined <SOMETHING> unless <SOMETHING>

        2
  •  4
  •   Chas. Owens    15 年前

    Perl 5有 several false values : 0 , "0" "" , undef () .

    需要注意的是,有些事情看起来应该是假的,但事实并非如此 0.0 是false,因为它是与 0 ,但是 "0.0" 不是(唯一为false的字符串是空字符串( "" )以及 ).

    它还有定义的概念。一个变量有一个赋值(而不是undef),它被称为已定义的变量,当用 defined

    假设您希望参数是非负整数,那么最好测试一下:

    unless (defined $value and $value =~ /^[0-9]+$/) {
        #blah
    }
    
    推荐文章