Your company here — click to reach over 10,000 unique daily visitors

perlfreebsd - Man Page

Perl version 5 on FreeBSD systems


This document describes various features of FreeBSD that will affect how Perl version 5 (hereafter just Perl) is compiled and/or runs.

FreeBSD core dumps from readdir_r with ithreads

When perl is configured to use ithreads, it will use re-entrant library calls in preference to non-re-entrant versions.  There is a bug in FreeBSD's readdir_r function in versions 4.5 and earlier that can cause a SEGV when reading large directories. A patch for FreeBSD libc is available (see <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=30631>) which has been integrated into FreeBSD 4.6.

$^X doesn't always contain a full path in FreeBSD

perl sets $^X where possible to a full path by asking the operating system. On FreeBSD the full path of the perl interpreter is found by using sysctl with KERN_PROC_PATHNAME if that is supported, else by reading the symlink /proc/curproc/file. FreeBSD 7 and earlier has a bug where either approach sometimes returns an incorrect value (see <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=35703>). In these cases perl will fall back to the old behaviour of using C's argv[0] value for $^X.


Nicholas Clark <nick@ccl4.org>, collating wisdom supplied by Slaven Rezic and Tim Bunce.

Please report any errors, updates, or suggestions to <https://github.com/Perl/perl5/issues>.


2024-06-12 perl v5.40.0 Perl Programmers Reference Guide