Test::Cmd provides a framework for portable, automated testing of executable commands and scripts (in any language, not just Perl), especially those that interact with the file system. In addition to running tests and evaluating conditions, the Test::Cmd module manages and cleans up temporary workspace directories, and provides methods for creating files and directories from in-line data (here-documents).