【发布时间】:2023-03-20 21:08:01
【问题描述】:
使用警告和严格。 ActivePerl(供应商受限)版本 5.8.0 Build 806
收到此警告消息:在 D:\NIGHTLY\SamJudNighlty_ABS.pl 第 589 行使用数字 ne (!=) 中未初始化的值(代码为 sn-p 在底部)。
实际上多行收到此警告,因为此构造在代码中经常使用。继承了这段代码,只是试图清理它。不确定这是否是一个问题,但想跟进。
根据我的研究:“-e 返回 1 为真,'' 为假,如果文件不存在,则返回未定义的值。
587 $finFlag = $NightlyFlagPath . "\\FIN\\DONE";
588
589 while((-e $finFlag) != 1)
590 {
591 sleep(120);
592 print(PROGRESSFILE "\nWaiting for the Fin Nightly to finish" . getPCTime5());
593 }
【问题讨论】:
-
你是对的,当
undef值与1进行比较时会弹出警告。由于这样的构造没有意义,您可以until (-e $finFlag) {..}或@zdim 写的内容。 -
-e如果文件存在则返回真值,如果发生错误(包括文件不存在)则返回undef。
标签: perl