perl - 分配给 $!在 Perl 中?

标签 perl error-handling

可以赋值给 $! Perl 中的错误?

例如。,

if( ! (-e $inputfile))
{
      $! = "Input file $inputfile appears to be non-existent\n";
      return undef;
}

这样我就可以处理顶层的所有错误。

谢谢。

最佳答案

如果你赋值给 $!,它被放置在系统 errno 变量中,它只接受数字。所以你实际上可以这样做:

use Errno "EEXIST";
$! = EEXIST;
print $!;

并获取定义的系统错误号的字符串值,但您不能做您想做的事 - 将其设置为任意字符串。这样的字符串会给你一个参数“...”在标量赋值警告中不是数字,并将 errno 设置为 0。

另一个问题是 $!可以被任何系统调用改变。因此,您只能相信它具有您设置的值,直到您进行打印或其他任何事情。您可能想要自己的错误变量。

关于perl - 分配给 $!在 Perl 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044846/

相关文章:

linux - virtualbox + perl + 共享文件夹 == 失败

xml - 将 XML 转换为 CSV 时出现内存不足错误

javascript - 在带有异步的 Nodejs 中使用自定义错误

asp.net-mvc - 如何使自定义错误页面出现在生产服务器上

asp.net-mvc - MVC模型验证

php - Laravel 文件权限错误

python - HTTPS GET 请求并读取 JSON 回复

linux - Perl + Linux 在多个文本位置重新排列列

perl - 在 Unix shell 脚本中匹配 2 个模式后追加一行

php - 在 Blade 模板中捕获 “Trying to get property of non-object”