The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package TempDir;
use strict;
use warnings;

use base 'Exporter';
our @EXPORT = qw(mk_temp_dir);

use local::lib ();
use Cwd;
use File::Temp qw(tempdir);

$File::Temp::KEEP_ALL = 1
  if $ENV{LOCAL_LIB_TEST_DEBUG};

sub mk_temp_dir
{
    my $name_template = shift;

    mkdir 't/temp';
    my $path = tempdir($name_template, DIR => Cwd::abs_path('t/temp'), CLEANUP => 1);
    local::lib->ensure_dir_structure_for($path, { quiet => 1 });
    # On Win32 the path where the distribution is built usually contains
    # spaces. This is a problem for some parts of the CPAN toolchain, so
    # local::lib uses the GetShortPathName trick do get an alternate
    # representation of the path that doesn't constain spaces.
    return ($^O eq 'MSWin32')
         ? Win32::GetShortPathName($path)
    : $path
}

1;