- SEE ALSO
- COPYRIGHT AND LICENSE
File::Util::Tempdir - Cross-platform way to get system-wide & user private temporary directory
This document describes version 0.034 of File::Util::Tempdir (from Perl distribution File-Util-Tempdir), released on 2018-09-22.
use File::Util::Tempdir qw(get_tempdir get_user_tempdir); my $tmpdir = get_tempdir(); # => e.g. "/tmp" my $mytmpdir = get_user_tempdir(); # => e.g. "/run/user/1000", or "/tmp/1000"
None are exported by default, but they are exportable.
my $dir = get_tempdir();
A cross-platform way to get system-wide temporary directory.
On Windows: it first looks for one of these environment variables in this order and return the first value that is set:
TEMPDIR. If none are set, will look at these directories in this order and return the first value that is set:
C:\TEMP. If none are set, will die.
On Unix: it first looks for one of these environment variables in this order and return the first value that is set:
TEMP. If none are set, will look at these directories in this order and return the first value that is set:
/var/tmp. If none are set, will die.
my $dir = get_user_tempdir();
Get user's private temporary directory.
When you use world-writable temporary directory like /tmp, you usually need to create randomly named temporary files, such as those created by File::Temp. If you try to create a temporary file with guessable name, other users can intercept this and you can either: 1) fail to create/write your temporary file; 2) be tricked to read malicious data; 3) be tricked to write to other location (e.g. via symlink).
This routine is like "get_tempdir" except: on Unix, it will look for
XDG_RUNTIME_DIR first (which on a Linux system with systemd will have value like
/run/user/1000 which points to a RAM-based tmpfs). Also,
get_user_tempdir will first check that the temporary directory is: 1) owned by the running user; 2) not group- and world-writable. If not, it will create a subdirectory named
$>) with permission mode 0700 and return that. If that subdirectory already exists and is not owned by the user or is group-/world-writable, will try
$EUID.1 and so on.
It will die on failure.
Please visit the project's homepage at https://metacpan.org/release/File-Util-Tempdir.
Source repository is at https://github.com/perlancar/perl-File-Util-Tempdir.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=File-Util-Tempdir
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
tmpdir function. It also tries to look at environment variables, e.g. on Unix it will look at
TMPDIR (but not
TEMPDIR) and then falls back to
/tmp (but not
File::HomeDir, a cross-platform way to get user's home directory and a few other related directories.
File::Temp to create a temporary directory.
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html for the specification of
This software is copyright (c) 2018, 2016 by email@example.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.