目錄

名稱

perlfreebsd - FreeBSD 系統上的 Perl 版本 5

說明

本文說明 FreeBSD 的各種功能,這些功能會影響 Perl 版本 5(以下簡稱 Perl)的編譯和/或執行方式。

使用 ithreads 時,FreeBSD 核心會從 readdir_r 傾印

當 Perl 設定為使用 ithreads 時,它會優先使用可重新進入的函式庫呼叫,而不是不可重新進入的版本。FreeBSD 4.5 及更早版本中 readdir_r 函式有一個錯誤,在讀取大型目錄時可能會導致 SEGV。FreeBSD libc 有可用的修補程式(請參閱 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=30631),已整合到 FreeBSD 4.6 中。

在 FreeBSD 中,$^X 不總是包含完整路徑

Perl 透過詢問作業系統,盡可能將 $^X 設定為完整路徑。在 FreeBSD 上,如果支援,則會使用 sysctlKERN_PROC_PATHNAME 尋找 Perl 詮釋器的完整路徑,否則會透過讀取符號連結 /proc/curproc/file。FreeBSD 7 及更早版本有一個錯誤,有時這兩種方法都會傳回不正確的值(請參閱 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=35703)。在這些情況下,Perl 會採用舊行為,使用 C 的 argv[0] 值作為 $^X

作者

Nicholas Clark <nick@ccl4.org>,彙整 Slaven Rezic 和 Tim Bunce 提供的智慧。

請將任何錯誤、更新或建議回報至 https://github.com/Perl/perl5/issues