我编写了简单的代码片段,以处理在受限(我们需要 root 权限)中打开文件时发生的错误,以下代码工作正常并给出错误为 o/p
#!/usr/bin/perl
use strict;
use warnings;
use Try::Tiny;
my $file_name = "/var/log/test.txt"; # needs root permission to create file
if(open(HAN, ">$file_name")){
print "sucuessfully opened file \n ";
} else {
print "Error with if/else while openning file : $! \n";
}
o/p:
打开文件时 if/else 出错:权限被拒绝
当我使用相同代码的 try/catch 或 eval 并打开文件时
try {
open(HAN, ">$file_name");
} catch {
print "Error with try/catch while opening file : $_ \n";
};
或者
eval {
open(HAN, ">$file_name");
};
print " Error with eval while opening file : $@ \n";
它在 $_ 或 $@ 中没有显示输出,为什么会这样?