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