ExtUtils::Command(3pm)

πŸ’– ExtUtils::Command(3pm) πŸ’–

okay so this is the ExtUtils::Command(3pm) page from the Perl Programmers Reference Guide, and it's literally the utilities-to-replace-common-UNIX-commands-in-Makefiles situation. bestie, it's giving β€œmake my Makefile life easier” energy, and honestly? iconic. πŸ’…


🌸 NAME 🌸

ExtUtils::Command β€” utilities to replace common UNIX commands in Makefiles etc. no cap, that's the whole vibe. ✨


✨ SYNOPSIS ✨

perl -MExtUtils::Command -e cat files... > destination
perl -MExtUtils::Command -e mv source... destination
perl -MExtUtils::Command -e cp source... destination
perl -MExtUtils::Command -e touch files...
perl -MExtUtils::Command -e rm_f files...
perl -MExtUtils::Command -e rm_rf directories...
perl -MExtUtils::Command -e mkpath directories...
perl -MExtUtils::Command -e eqtime source destination
perl -MExtUtils::Command -e test_f file
perl -MExtUtils::Command -e test_d directory
perl -MExtUtils::Command -e chmod mode files...
...

like, yes, there is a little ... at the end. it's not me being mysterious, it's literally in the synopsis. 🫢


πŸ’… DESCRIPTION πŸ’…

The module is used to replace common UNIX commands. In all cases the functions work from @ARGV rather than taking arguments. This makes them easier to deal with in Makefiles. that's the main character energy right there. πŸ’–

Call them like this:

perl -MExtUtils::Command -e some_command some files to work on

and NOT like this:

perl -MExtUtils::Command -e 'some_command qw(some files to work on)'

For that use Shell::Command. iykyk. πŸ¦‹

Filenames with * and ? will be glob expanded. periodt. ✨

πŸŽ€ FUNCTIONS πŸŽ€

🌟 cat

cat file ...

Concatenates all files mentioned on command line to STDOUT. slay, output goes brrr. πŸ’…

🌟 eqtime

eqtime source destination

Sets modified time of destination to that of source. matching timestamps? we love to see it. πŸŽ€

🌟 rm_rf

rm_rf files or directories ...

Removes files and directories - recursively (even if readonly). okay but like, be careful bestie β€” it's literally recursive and it does not care about readonly. πŸ’€

🌟 rm_f

rm_f file ...

Removes files (even if readonly). yes, even readonly. no hesitation. 🫢

🌟 touch

touch file ...

Makes files exist, with current timestamp. manifesting files into existence, honestly. ✨

🌟 mv

mv source_file destination_file
mv source_file source_file destination_dir

Moves source to destination. Multiple sources are allowed if destination is an existing directory.

Returns true if all moves succeeded, false otherwise. very β€œdid everybody make it?” energy. πŸ¦‹

🌟 cp

cp source_file destination_file
cp source_file source_file destination_dir

Copies sources to the destination. Multiple sources are allowed if destination is an existing directory.

Returns true if all copies succeeded, false otherwise. same vibe, but copy-paste edition. πŸ’–

🌟 chmod

chmod mode files ...

Sets UNIX like permissions 'mode' on all the files. e.g. 0666. permission glow-up, no cap. πŸ”₯

🌟 mkpath

mkpath directory ...

Creates directories, including any parent directories. it's giving β€œmake the whole path happen” energy. 🌈

🌟 test_f

test_f file

Tests if a file exists. Exits with 0 if it does, 1 if it does not (ie. shell's idea of true and false). very shell-brained, very iconic. πŸ’…

🌟 test_d

test_d directory

Tests if a directory exists. Exits with 0 if it does, 1 if it does not (ie. shell's idea of true and false). directory vibe check complete. πŸŽ€

🌟 dos2unix

dos2unix files or dirs ...

Converts DOS and OS/2 linefeeds to Unix style recursively. linefeed makeover, recursively. obsessed. ✨


πŸ¦‹ SEE ALSO πŸ¦‹

Shell::Command which is these same functions but take arguments normally. same friend group, different communication style. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

Nick Ing-Simmons "ni-s@cpan.org"

Maintained by Michael G Schwern "schwern@pobox.com" within the ExtUtils-MakeMaker package and, as a separate CPAN package, by Randy Kobes "r.kobes@uwinnipeg.ca".


okay bye bestie β€” this was ExtUtils::Command(3pm) from perl v5.42.3, dated 2026-11-03. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from