Changes for version 0.99.1_3 - 2025-03-27

  • Enhancements:
    • Replace default UTF-8 encoding assumption with Encode::Locale
  • Bug Fixes:
    • Use an explicit "binmode" on parent and child handles when forking.
  • Dependencies:
    • Moved from Test::More to Test2::V0
    • New: Encode, Encode::Locale

Changes for version 0.99.1_2 - 2025-03-25

  • Bug Fixes:
    • Correctly process utf8 arguments.
  • Code Maintenance
    • Do not use an undefined `pid` when warning of uncollected error output.
  • Packaging:
    • Fix broken homepage and bugtracker urls

Changes for version 0.99.1_1 - 2025-03-21

  • API / Behaviour Changes:
    • Deprecate runx() since run() now does the same but better.
    • Deprecate Sys::Cmd::Template as Sys::Cmd now does it better
  • New Features:
    • Template functions "syscmd", "runsub" and "spawnsub" for repeated calls.
    • Experimental mock process support
  • Enhancements:
    • The "run()" function now lets the caller capture process stdout and stderr separately.
  • Code Maintenance
    • Major code restructure and documentation update
    • Minor test cleanups

Changes for version 0.99.0_2 - 2022-02-08

  • Enhancements:
    • Set autoflush on actual output file handles (not sources)
    • Minor documentation and code cleanups
  • Dependencies:
    • Re-inlined Mo v0.40.

Changes for version 0.99.0_1 - 2021-12-22

  • API / Behaviour Changes:
    • None.
  • New Features:
    • None.
  • Enhancements:
    • Warn on uncollected STDERR output from child
  • Bug Fixes:
    • [Security] Do not search in "." for matching executables
    • Do not force "encoding($X)" to allow for things like :raw
  • Dependencies:
    • None.
  • Packaging:
    • Move to ExtUtils::MakeMaker away from Module::Build.

Modules

run a system command or spawn a system processes

Provides

in lib/Sys/Cmd.pm

Examples