PERLFREEBSD(1) Perl Programmers Reference Guide PERLFREEBSD(1)

# [NAME](#NAME)

perlfreebsd - Perl version 5 on FreeBSD systems

# [DESCRIPTION](#DESCRIPTION)

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](#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 &lt;https://bugs.freebsd.org/bugzilla/show\_bug.cgi?id=30631&gt;) which has been integrated into FreeBSD 4.6.

## [$^X doesn't always contain a full path in FreeBSD](#$_X_doesn)

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 &lt;https://bugs.freebsd.org/bugzilla/show\_bug.cgi?id=35703&gt;). In these cases perl will fall back to the old behaviour of using C's "argv\[0]" value for $^X.

# [AUTHOR](#AUTHOR)

Nicholas Clark &lt;nick@ccl4.org&gt;, collating wisdom supplied by Slaven Rezic and Tim Bunce.

Please report any errors, updates, or suggestions to &lt;https://github.com/Perl/perl5/issues&gt;.

2026-10-21 perl v5.44.0

---

Document: perlfreebsd(1) from perl 5.44.0-r2 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
