Perl:在"unless -e"语句中找不到打印变量

ss2*_*025 2 perl

我有这行代码:

unless((-e $FileOne) && (-e $Filetwo) && (-e $FileThree)) {die "$!\n";}
Run Code Online (Sandbox Code Playgroud)

其中,$变量包含具有完整路径的文件名.

此语句检查是否所有3个文件都存在,否则,它将die.

是否有任何Perl'特殊变量'可以在die声明中使用,让我知道三个文件中哪一个丢失(即三个-e检查中哪一个失败)?

提前致谢.

cho*_*oba 8

您可以使用for循环将变量别名为$ _:

-e or die "$_: $!\n" for $FileOne, $Filetwo, $FileThree;
Run Code Online (Sandbox Code Playgroud)

请注意,如果缺少Filetwo,则甚至不会测试FileThree的存在(如原始代码中所示).