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 自身相同的条款重新分发和/或修改它。