【问题标题】:Perl: How to "die" with no error message?Perl:如何在没有错误消息的情况下“死”?
【发布时间】:2023-04-05 00:43:01
【问题描述】:

我用下面的代码在 perl 中运行一个简单的文件测试:

my $f1 = "$pre_file";

 unless (-e $1) {

 print "\n Pre_check file does not exists! \n";

 die;

 } 

它打印以下输出:

Pre_check 文件不存在!
死于 ./huawei-postcheck 第 81 行。

但是我不想要最后一行“死于 ./huawei-postcheck line 81。”。

我想在没有错误信息的情况下“死”。

有可能吗?

【问题讨论】:

    标签: perl die


    【解决方案1】:

    请参阅die 的文档。

    如果 LIST 的最后一个元素不以换行符结尾,则当前 还打印脚本行号和输入行号(如果有), 并提供了一个换行符。

    因此,您只需使用 die "\n" 即可在不打印任何内容的情况下开始工作。但是鉴于您有一条错误消息,我看不出您为什么不使用它。

    unless (-e $f1) {
      die "\n Pre_check file does not exist!\n";
    }
    

    当然,不同之处在于消息现在将发送到 STDERR 而不是 STDOUT。但这可能是它去的正确地方。

    【讨论】:

      【解决方案2】:

      使用exit 而不是die

      【讨论】:

      • @Arkadiy, die 实际上使用$! || $?>>8 || 255,如果你想模仿它。
      【解决方案3】:

      你可以说

      die "\n";
      

      隐藏消息。

      【讨论】:

        【解决方案4】:

        你可能想exit 1而不是死。

        【讨论】:

          【解决方案5】:
          my $f1 = "$pre_file";
          
          unless (-e $1) {
              print "\n Pre_check file does not exists! \n";
              exit 1;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-04-06
            • 2011-02-07
            • 2019-06-13
            • 2011-06-29
            • 1970-01-01
            • 2021-02-16
            • 1970-01-01
            相关资源
            最近更新 更多