The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
0.2311    2020-10-03 04:04:15Z
          - Fix new PERMS test so as to also pass on root (RT#133443)

0.2310    2020-09-26 17:37:56Z
          - add AppVeyor CI
          - Add PERMS options to create temp file with given file permissions
          - remove remaining uses of indirect object syntax (#34, Nicolas R)

0.2309    2019-01-06 20:29:15Z
          - fix longstanding pod formatting error (issue #19, RT#109526)

0.2308    2018-07-11 21:06:16Z
          - remove File::Temp::Dir from the PAUSE index (it is not in its own
            .pm file, so it is not 'use'able on its own)

0.2307    2018-06-24 19:40:29Z (TRIAL RELEASE)
          - change EXLOCK default from true to false; addresses RT#123959.
            Note that this option was always a no-op on non-BSD platforms;
            changing the default to false makes behaviour more predictable and
            consistent across platforms.

0.2306    2018-06-24 19:33:47Z
          - switch from 'use vars' to 'our'

0.2305    2018-04-19 11:58:49Z (TRIAL RELEASE)
          - documentation updates for what versions contain what features
            (thanks, Brian Mowrey! RT#101518)
          - fix bad use of skip() in tests (RT#95922)
          - Fall back to CSIDL_LOCAL_APPDATA under taint on Windows (RT#60340)
          - update distribution tooling

0.2304    2013-10-10 13:16:27Z

        * List all detectable dependencies for completeness. (Test::More had
          been unintentionally omitted in the last release and many core
          dependencies had never been listed.)

0.2303    2013-10-09 13:57:21Z

        * Remove compile test and associated dependencies

0.2302    2013-09-26 13:45:35Z

        * Drop minimum Perl version back to 5.6 (erroneously bumped by dzil)
        * Do not inherit from Exporter (requires Exporter 5.57) (thanks to
          Olivier Mengué)
        * 'use base ...' => 'use parent ...' as parent is lighter (thanks to
          Olivier Mengué)

0.2301    2013-04-11 15:30:05Z

        * dist.ini: Managed with Dist::Zilla now; generates Makefile.PL
          to avoid circular dependency when using Build.PL

0.23      2013-03-14 Tim Jenness <>

	* Build.PL: Use Module::Build

	* internally holds absolute path for cleanup (Fixes RT #44924)

	* t/rmtree.t: (new) Test temp dir removal explicitly.

	* t/tempfile.t: Correctly tests directory removal from chdir.

	* Clean up temp directory on exit even if it is the
	current directory. Patch supplied by Ed Avis and fixes RT #45246.

	* Defer unlinking tempfiles if initial unlink fails
	instad of croaking; fixes problems on NFS (RT #82720)

	* Allow leading template to new() for consistency with

	* Calling tempfile or tempdir as a class method now
	produce a more useful fatal error message

	* new/newdir/tempfile/tempdir now all allow either
	a leading template argument or a TEMPLATE option

        * Overload numify with refaddr() in same manner as IO::File
          (closes RT #47397 from Kevin Ryde)

0.22      2009-06-28  Tim Jenness <>

	* t/fork.t: Fix portability problems in fork.t and remove left
	over file (RT #41557)

0.21      2008-11-12  Tim Jenness  <>

	* Clean out $FILES_CREATED_BY_OBJECT when the destructor
	runs. Otherwise memory does not get returned. Really bad idea for 
	daemons. (Thanks to Maxime Therreault RT #37621)
	* Integrate patches from bleadperl for cygwin. (thanks to 
	Jari Aalto RT #36376)

	* t/seekable.t: seekable test was failing on perl 5.6.0 so we now
	skip the specific test. (thanks to Zefram)

	* Remove the test on the parent directory to see if a file
	can be written. This will be found out anyway as soon as the file open
	is attempted. AFS systems may fail a -w test but still allow a file to
	be created. (thanks to Christopher Ellison)

	* Put an eval around rmtree. Some versions of rmtree croak
	if you attempt to remove a directory that you are inside. (debian bug
	479317 and RT #35779).
	* Localize special variables in END blocks and destructors.
0.20      2007-12-20  Tim Jenness  <>
	* t/lock.t: Fix logic problem with BEGIN block that was causing grief on some
	systems (thanks to Steve Peters for patch).

0.19      2007-11-19  Tim Jenness  <>

	* (tempfile): Add EXLOCK option which can be used to disable O_EXLOCK

	* t/lock.t: Test ability to disable O_EXLOCK
	* (newdir): Add object oriented interface to "tempdir". Use

	* (tempdir): Add a note to the tempdir documentation to
	clarify that the default is for the directory not to be temporary
	and that use of an OO approach may be required (thanks to David
	Golden's annotation on CPAN).
	* (_randchar): Remove _randchar function (no longer used) 

	* Add note  about File::Tempdir module
	* (new): Track pid used when file created and make sure
	object destructor deletes the file only when the current pid
	matches the original pid (RT#11067 again - thanks to Grousse)
	Added new test (fork.t) to test this behaviour.

	* t/seekable.t: Add tests to verify fix for RT#22052
	* (_is_safe): Correct cluck message to match uid check
	(thanks to Alexey Tourbin RT #14218)

	* Add note on use of binmode to modify encoding. (prompted
	by Wolfgang Husmann)
	* (tempfile): Add TMPDIR flag to simplify 
	    tempdir(template, DIR => File::Spec->tmpdir) and to remove confusion
	for tempdir interface. (thanks to Brendan O'Dea - debian bug #351373)

	* META.yml: Update to v1.0 spec YAML spec. (thanks to Alexandr Ciornii RT# 23524)

	* Localize $@ when using eval to prevent leakage (prompted by Zefram)
	* Makefile.PL: Support LICENSE in newer ExtUtils::MakeMaker implementations
	(thanks to Alexandr Ciornii RT #23524)

	* t/seekable.t: Skip seek test on older IO::Seekable versions.
	(thanks to Sebastien Aperghis-Tramoni RT #23524)
	* Allow XXX replacement to run on perl 5.005 and 5.004.
	(thanks to Sebastien Aperghis-Tramoni RT #23524)

	* Fix range of random character determination such that the last character
	in the list (_) will appear occassionally. (Thanks to Peter Dintelmann perl RT# 41345)

	* Clarify error message when parent directory does not exist (thanks to
	Peter Dintelmann perl RT # 41346)

	* Carp::Heavy does not exist on older perls (eg 5.005) so wrap the require
	in an eval (Thanks to Sebastien Aperghis-Tramoni, Jesse Vincent, Slaven Rezic
	and Robin Barker RT #26841)

	* Replace "new File::Temp" with "File::Temp->new" at the behest of H. Merijn 
0.18      2007-01-21 Tim Jenness <>

	* Provide "cmp" overloading so File::Temp object can
	be compared to filename directly. (Rafael Garcia-Suarez)
	* Remove umask control (was not thread-safe)
	(thanks to Peter Dintelmann, Gisle Aas)

	* t/cmp.t: New test file

	* Export SEEK_* constants (Matt Lawrence RT #22052)
0.17      2006-08-18  Tim Jenness  <>

	* Also inherit from IO::Seekable so that seek and tell
	methods can work on filehandles (thanks to Rick Myers and Toby Corkindale).

	* t/seekable.t: Add test script from Rick Myers.
	* Add note about forking and resetting the random number generator
	to prevent multiple clashes of temp file names. (pointed out by Brent Cowgill)

	* pre-emptively load Carp::Heavy. If we don't when we run out of file
	handles and attempt to call croak() we get an error message telling
	us that Carp::Heavy won't load rather than an error telling us we
	have run out of file handles. (pointed out by RT #14151)

	* Remove eg. from comments and replace with e.g. In pod
	replace "e.g." with "for example". (David Landgren)

	* Correct synopsis concerning the arguments to the
	File::Temp constructor (Peter Valdemar Moerch).

	* Update documentation to note that croak() will be
	called by tempfile() and File::Temp->new if a problem occurs (thanks to Steve
	Hay for pointing this out).

	* Sebastien Aperghis-Tramoni indicates that File::Temp
	works with perl 5.004 so change the minimum perl version. (RT #14149)

	* Use effective uid rather than real uid (Alexey Tourbin RT #14218)

0.16      2005-02-22  Tim Jenness  <>

	* Remove spurious debug statement

0.15      2005-02-21  Tim Jenness  <>

	* (unlink_on_destroy): Add post-object creation method to
	control whether the temp file will be unlinked when the object
	goes out of scope.
	* Increase maximum number of tries before aborting.

	* Add $KEEP_ALL to allow the temporary files to be
	retained whilst debugging (suggestion from Ed Avis [and others]).

	* Temp files should have been opened O_NOFOLLOW rather
	than O_FOLLOW! (thanks to Marc Tardif)

	* Add cleanup() function so that temp files that would be
	removed by an END block can be removed by a daemon. (RT wishlist
	item #6928 by Robert Rothenberg)

	* Force chmod on file before unlinking it. This can be a
	problem on windows (see RT bug #6935). tempdir() has been fixed by
	Slaven's earlier patch to change the rmtree arguments.

	* (top_system_uid): Add interix patch from Todd Vierling

	* (_gettemp): Pod patch from Steven Lembark clarifying the
	error message associated with two few XXXXs

	* Add note on forking and make sure that END blocks only
	remove temporary files created by the current process ID (prompted
	by Daniel Macks in RT bug #11067)

	* (cmpstat): Roman Vasicek reported problems with the _
	filehandle. Play it safe and remove that handle. (see RT bug #8822)

	* t/tempfile.t: Add test for write proteceted temp file (thanks to
	Slaven Rezic)

	* (_can_do_level): Change argument to rmtree to make it
	attempt to remove write-protected files on cleanup (thanks to
	Slaven Rezic)

	* Add note on binmode usage
0.14      2003-08-16  Tim Jenness  <>

	* t/object.t: Add test of OO interface and switch to Test::More

	* Add object-oriented interface.
	* mpeix fixes from Ken Hirsch <>

0.13      2003-08-15  Tim Jenness  <>
	* Integrate doc fixes from bleadperl (Slaven Rezic and
	Jeffrey Friedl)

	* Makefile.PL: Add INSTALLDIRS switch on perl version so that the
	module installs into the correct place for perl 5.6.1 and newer.

	* Synch with perl 5.8.0 v0.13 MacOS fixes (Chris Nandor)

0.12      2001-02-22  Tim Jenness  <>

	* t/posix.t: The unlink0 tests now skip on failure

	* t/mktemp.t: The unlink0 tests now skip on failure

	* (tmpfile): tmpfile returns undef on failure rather than

	      -Add fix for CGI::Carp 
                  [Thanks to John Labovitz <>]
              - Use error string to propogate reason rather than a carp

0.11      2000-11-24  Tim Jenness  <>

	* t/tempfile.t: Add a test to make sure the file is present after
	close and another to use tempfile in a scalar context.

	* Fix bug on NT with O_TEMPORARY causing the file to be
	removed before the program exits. 

	* Incorporate fixes up to bleedperl 7825. Cross platform

	* t/security.t: Incorporate fixes from bleedperl 7825 - adds more
	cross platform support and more skips on the basis that this is
	not testing your system security, just the module.

	* (_gettemp): Dont use VMS::Stdio if we want the file
	to remain after closing.

	* (_can_do_level): cygwin patch

	* Add OPENTEMPFLAGS to support UNLINK=>0
		More tweaks to VMS support (now uses VMS::Stdio)

0.09      2000-07-26  Tim Jenness  <>

	* README: Update for V0.09

	* t/security.t: OS/2 can not do the security tests.

	* Add Support for VMS and OS/2 

0.08      2000-05-15  Tim Jenness  <>

	* t/mktemp.t: Skip the test for unlink0 if it fails since in most
	cases this indicates an NFS problem.

	* (_can_do_level): Add check to make sure an OS can handle 
	the required safe level
	(safe_level): Check the level can be supported before allowing it
	to change 
	(END): Change order of cleanup so that files are removed ahead of
	temp dirs (since files may be in the temp dirs) 

	* Reorganize END block 

	* t/tempfile.t: Correct tests for new position of END{} block

	* t/security.t: Correct tests for new position of END{} block

	* t/posix.t: add # to print output

	* t/tempfile.t: Add # to print output

	* t/mktemp.t: Add # to print output

	* t/security.t: Add # to print output

	* Calculate OPENFLAGS outside of subroutine. This
	improves speed of the commands by nearly a factor of 3.
	(_replace_XX): Inline the character replacement code rather than
	using _randchar subroutine. Improves performance by an additional 8%.

	* t/posix.t: Add explicit autoflush on filehandle

	* t/mktemp.t: Add explicit autoflush on filehandle

	* (unlink0): Disallow HIGH and MEDIUM tests if running
	perl 5.005 or earlier.

	* t/security.t: Specify perl version to allow for tests

        * Add support for perl 5.005 (remove 'our' and auto-vivifying file 
	handles). VERSION NUMBER NOW 0.07

	* README: Update in preparation for V0.06 

	* (_deferred_unlink): Add new internal routine to centralise the
	configuring of END blocks. This also fixes a bug where only the
	first file was being unlinked in the END block (due to scoping).

	(_can_unlink_opened_file): Rename from _can_unlink. Will now
	return false if running on Windows.

	(_is_verysafe): If _PC_CHOWN_RESTRICTED is not available assume
	that "chown giveaway" is possible anyway.

	(unlink0): If can not unlink an open file, simply defer removal
	until later.

	(_gettemp): Add O_NOINHERIT and O_TEMPORARY flags to sysopen if
	they are available (Thanks to Tom Christiansen for this)

	* t/mktemp.t: Add test

	* t/posix.t: Add test

	* t/security.t: Add test

	* t/tempfile.t: Add test

0.05      2000-03-14  Tim Jenness  <>

	* Release v0.05 to CPAN