NAME File::Tempdir::ForPackage - Easy temporary directories associated with packages. VERSION version 0.1.0 DESCRIPTION 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 dir is reaped. Additionally, this code can be run in a tight loop creating and destroying lots of similary named tempdirs 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. AUTHOR Kent Fredric COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Kent Fredric . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.