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 相同的條款下重新散布或修改它。