sub tmpdir { my $tmpdir = $_[0]->_cached_tmpdir(qw(TMPDIR TEMP TMP)); return $tmpdir if defined $tmpdir; my $appdata_local_temp; eval{ require Win32; $appdata_local_temp = _canon_cat(Win32::GetFolderPath(Win32::CSIDL_LOCAL_APPDATA()),'Temp'); }; $tmpdir = $_[0]->_tmpdir( map( $ENV{$_}, qw(TMPDIR TEMP TMP) ), $appdata_local_temp, 'SYS:/temp', 'C:\system\temp', 'C:/temp', '/tmp', '/' ); $_[0]->_cache_tmpdir($tmpdir, qw(TMPDIR TEMP TMP)); }