Changes for version 1.04 - 2026-10-24

  • nofork mode now restores STDOUT and STDERR with dup2() instead of re-opening them over the saved dup. When the destination is a character device (a terminal, /dev/null), re-opening gave the handle a fresh output-side PerlIO with no layers, so the caller's :encoding layer was silently lost and non-ASCII output produced "Wide character in print" warnings. Pipes and files were not affected.
  • Layers pushed for a nofork execution are now popped back to the depth recorded before the redirect, rather than by a single unconditional :pop, so a caller's own :encoding layer survives even if binmode becomes idempotent in a future perl.

Documentation

Modules

Execute external command or code reference
Temporary file with /dev/fd path access