File::Tempdir::ForPackage This is mostly an interface wrapper for "File::Temp::tempdir", stealing code from "File::Tempdir"; * I constantly forget how "File::Tempdir" works * I often want a "tempdir" with the name of the package working with it enshrined in the path * I constantly forget the magic glue syntax to get a folder inside a system "tempdir" with a custom prefix and a user defined length of random characters. And this is designed to solve this simply. use File::TempDir::ForPackage; my $tempdir = File::TempDir::ForPackage->new( package => __PACKAGE__ , use_version => 1 ); my $dir = $tempdir->dir(); do shit in `$dir` $dir on Linux will be something like /tmp/perl-Some-Package-maybewith-a-VERSION-AFG14561/ so if it crashes and leaves a "tempdir" behind, you will know who left that "tempdir" behind and have a way of cleaning it up. When $tempdir is destroyed, $dir will be cleaned; Additionally: $dir->run_once_in(sub{ ... }); Is there for people who don't trust scope auto-cleansing and want to know when the directory is reaped. Additionally, this code can be run in a tight loop creating and destroying lots of similarly named temporary directories without risk of conflict. for my $i ( 0 .. 30 ) { $dir->run_once_in(sub { system 'find $PWD'; }); } This emits something like: /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-PzH4BD /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-5h8nkG /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-UXKt4S /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-Lqg2aW /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-DkNeq6 /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-jRI_zF /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-j0_Gt1 /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-iX1ddT /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-ZmvikK /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-QNGOUF /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-6wssvL /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-ZmwZxl /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-wIzRTs /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-xetCym /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-8Y0vyX /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-Zlqt6X /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-U5Z_Sa /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-sKmow1 /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-rUND95 /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-XjPSGF /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-ec8sZZ /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-_4NBwX /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-xM9i6l /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-p3FhJf /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-Zv0sso /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-rP8cAi /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303496-408662-iade0x /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303497-408662-fsDDPy /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303497-408662-FeCcfZ /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303497-408662-ta5yfg /tmp/perl-File-Tempdir-ForPackage-versionundef-1343303497-408662-rdcQhF Except of course, with a package of your choosing, and possibly that packages version. INSTALLATION This is a Perl module distribution. It should be installed with whichever tool you use to manage your installation of Perl, e.g. any of cpanm . cpan . cpanp -i . Consult http://www.cpan.org/modules/INSTALL.html for further instruction. Should you wish to install this module manually, the procedure is perl Makefile.PL make make test make install COPYRIGHT AND LICENSE This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.