【问题标题】:Increase verbosity of Perl warnings增加 Perl 警告的详细程度
【发布时间】:2011-09-20 18:34:55
【问题描述】:

有没有办法增加 Perl 中警告的详细程度? 我用它来生成警告。

#!/usr/bin/perl -w

我对我偶尔点击的以下内容特别感兴趣。 Perl 是否可以打印未初始化变量的名称?

Use of uninitialized value in printf at ./script.pl line 106, <LOG> line 323805.

【问题讨论】:

    标签: perl warnings verbosity


    【解决方案1】:

    如果您升级到 Perl 5.10 或更高版本,它将尝试。 5.14 是当前版本。

    【讨论】:

      【解决方案2】:
      #!/usr/bin/perl
      use diagnostics;
      #or
      #use diagnostics -verbose;
      

      这将为您提供更多信息!
      http://perldoc.perl.org/diagnostics.html

      【讨论】:

        【解决方案3】:

        正如friedo 所说,听起来您的perl 版本较旧。但是,使用print 进行调试相当简单,并且是一种需要注意的良好“低技术”技术。如果你有这样一行:

        printf "%-10s %-10s %s %s", $var1, $var2, @array;
        

        你会得到一个很难放在任何一个变量上的警告,你总是可以把它分开:

        printf "%-10s ", $var1;
        printf "%-10s ", $var2;
        printf "%s %s", @array;
        

        然后你会得到更具体的警告。

        或者你可以有点创意,然后做:

        sub no_undef {
            my @return;
            push @return, map { defined $_ || "undef" } @_;
            return @return;
        }
        printf "%-10s %-10s %s %s", no_undef($var1, $var2, @array);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-23
          • 2011-09-19
          • 2017-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-29
          • 2011-06-15
          相关资源
          最近更新 更多