内容

名称

Errno - 系统 errno 常量

语法

use Errno qw(EINTR EIO :POSIX);

说明

Errno 定义并有条件地导出系统 errno.h include 文件中定义的所有错误常量。它有一个导出标记 :POSIX,它将导出所有 POSIX 定义的错误号。

在 Windows 上,Errno 还定义并有条件地导出系统 WinError.h include 文件中定义的所有 Winsock 错误常量。这些常量包含在第二个导出标记 :WINSOCK 中。

Errno 还使 %! 具有魔术性,使得 %! 的每个元素只有在 $! 设置为该值时才具有非零值。例如

my $fh;
unless (open($fh, "<", "/fangorn/spouse")) {
    if ($!{ENOENT}) {
        warn "Get a wife!\n";
    } else {
        warn "This path is barred: $!";
    } 
} 

如果系统中不存在指定常量 EFOO,则 $!{EFOO} 返回 ""。你可以使用 exists $!{EFOO} 检查系统中是否存在该常量。

当你第一次使用 %! 时,Perl 会自动加载 Errno,因此你不需要显式 use

警告

导入特定常量可能不太可移植,因为在没有该常量的平台上导入将失败。将 $! 设置为有效值的一种更可移植的方法是使用

if (exists &Errno::EFOO) {
    $! = &Errno::EFOO;
}

作者

Graham Barr <[email protected]>

版权

版权所有 (c) 1997-8 Graham Barr。保留所有权利。此程序是免费软件;你可以根据与 Perl 自身相同的条款重新分发和/或修改它。