EXTUTILS::COMMAND(3perl)

πŸ’– ExtUtils::Command πŸ’–

okay bestie, gather round, because this little icon lives in the Perl Programmers Reference Guide and it is literally the moment. This is ExtUtils::Command β€” utilities to replace common UNIX commands in Makefiles etc. πŸŽ€


✨ NAME ✨

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


🌸 SYNOPSIS 🌸

here's how we pull up, one command at a time:

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...
...

and there's more where that came from, the ... is doing so much heavy lifting rn 😭✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so the whole point: this module is used to replace common UNIX commands. In all cases the functions work from @ARGV rather than taking arguments. That's the trick that makes them way easier to deal with in Makefiles. 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)'

bestie I am begging you, do not do the second one. πŸ™ˆ For that use Shell::Command.

Also, filenames with * and ? will be glob expanded. iconic behavior fr. 🌈

πŸ’œ FUNCTIONS πŸ’œ

πŸ’… cat

cat file ...

Concatenates all files mentioned on command line to STDOUT. slay.

πŸ’… eqtime

eqtime source destination

Sets modified time of destination to that of source. syncing, but make it timestamps. ✨

πŸ’… rm_rf

rm_rf files or directories ...

Removes files and directories β€” recursively (even if readonly). yes, even if readonly. it does not care. it does not ask. πŸ‘‘

πŸ’… rm_f

rm_f file ...

Removes files (even if readonly). same energy, just not recursive.

πŸ’… touch

touch file ...

Makes files exist, with current timestamp. manifesting files into being, 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. important!! it tells you how it went. πŸ’–

πŸ’… 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. twin behavior. πŸŽ€

πŸ’… chmod

chmod mode files ...

Sets UNIX like permissions 'mode' on all the files. e.g. 0666. we love a number that just means something. πŸ’…

πŸ’… mkpath

mkpath directory ...

Creates directories, including any parent directories. the whole family tree, coming into existence. 🌸

πŸ’… 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). okay this one is lowkey unhinged because 0 is true down here but that's just how the shell works bestie, we don't make the rules. 😭

πŸ’… 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). same chaotic truth logic, but for directories. ✨

πŸ’… dos2unix

dos2unix files or dirs ...

Converts DOS and OS/2 linefeeds to Unix style recursively. glow up for your line endings. 🧚


πŸ‘‘ SEE ALSO πŸ‘‘

  • Shell::Command which is these same functions but take arguments normally.

like, the same besties, just a different way of talking to them. iykyk. πŸ’œ


🌟 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. the maintenance crew, we stan. 🫢


and that's the whole page bestie, sourced from perl v5.44.0 and dated 2026-10-17, ExtUtils::Command(3perl), mwah πŸ’…βœ¨

πŸ“¦ where this page comes from
  • arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms