User-defined environment variables, like PAR_CLEAN, always overrides the ones set in META.yml. The algorithm for generating caching/temporary directory is as follows: - If PAR_GLOBAL_TEMP is specified, use it as the cache directory for extracted libraries, and do not clean it up after execution. - If PAR_GLOBAL_TEMP is not set, but PAR_CLEAN is specified, set PAR_GLOBAL_TEMP to "TEMP/par-USER/temp-PID/", cleaning it after execution. - If both are not set, use "TEMP/par-USER/cache-HASH/" as the PAR_GLOBAL_TEMP, reusing any existing files inside. Here is a description of the variables the previous paths. - TEMP is a temporary directory, which can be set via $ENV{PAR_GLOBAL_TMPDIR}, $ENV{TMPDIR}, $ENV{TEMP} or $ENV{TMP}, in that order of priority. If none of those are set, C:\TEMP, /tmp are checked. If neither of them exists, . is used. - USER is the user name, or SYSTEM if none can be found. On Win32, this is $Win32::LoginName. On Unix, this is "$ENV{USERNAME}"> or $ENV{USER}. - PID is the process ID. Forked children use the parent’s PID. - HASH is a crypto-hash of the entire par file or executable, calculated at creation time. This value can be overloaded with pp"’s --tempdir parameter. By default, PAR strips POD sections from bundled modules. In case that causes trouble, you can turn this off by setting the environment variable "PAR_VERBATIM" to 1.