View on GitHub

Perl Power Tools

Your BSD toolbox, completely in Perl

The Unix Reconstruction Project

Get the same BSD tools no matter where you go, no matter which platform you use. Your shell scripts act the same when they use the same tools instead of different tools with the same name.

The tools

addbib apply ar arch arithmetic asa awk banner base64 basename bc cal cat
chgrp ching chmod chown clear cmp col colrm comm cp cut date dc deroff
diff dirname du echo ed env expand expr factor false file find fish
fold fortune from glob grep hangman head hexdump id install join kill ln lock
look ls mail make man maze mimedecode mkdir mkfifo moo morse od par
paste patch pig ping pom ppt pr primes printenv printf pwd rain random
rev rm rmdir robots seq shar sleep sort spell split strings sum tac tail
tar tee test time touch tr true tsort tty uname unexpand uniq units unlink
unpar unshar uudecode uuencode wc what which whoami whois words wump xargs


In February 1999, Tom Christiansen announced the Perl Power Tools project to provide a unified BSD toolbox. Perl is the same (mostly) everywhere you go and the same programs could run the same everywhere instead of being reimplemented for each platform. The Perl versions would have the same switches and features.

After that, the tools were lost in a minor Dark Ages, after which Casey West and Sean Dague resurrected the project in 2001. They made it onto CPAN as "ppt", was hosted at SourceForge, had a mailing list at perl.ppt, and a website at (now dead, but the source is in the old repo).

However, the project languished once again in an environment without easy forking and pull requests.

In 2014, brian d foy revitalized the project, changing the name to PerlPowerTools to make it much easier to search and discover. He moved it to GitHub and created its website with GitHub Pages.


Now it's time to bring Perl Power Tools up to current standards, including tests. With a test suite, not only can we ensure correct behavior but we can provide a reference implementation should someone want to do the same in some other language.