Revision history File::Slurp

9999.32     2020-06-30
    - Re-release after fixing MANIFEST

9999.31     2020-06-28
    - Remove TravisCI and AppVeyor
    - Test using GitHub Actions/workflows on Windows, Mac, and Linux
    - Add See Also section to the docs. (PR#24 Thanks, Dan Book)
    - Add file existence and size checks (RT 132900 - Thanks, Bao Haojun)

9999.30     2020-03-09
    - Altered the atomic version of write_file to use temporary files that
      are also hidden files. (RT #132064)

9999.29     2019-11-27
    - Correct some documentation errors where copy-paste had us saying
      File::Spec rather than File::Slurp. (RT 131097 - Thanks, Mike)
    - Reduce the size of the tests in t/handle.t to be nicer to CPAN

9999.28     2019-04-05
    - Stop testing with Taint mode. Taint was a terrible practice that should
      have never ever ever been a thing.

9999.27     2019-04-05
    - Update the documentation on the atomic write. We no longer use the pid
      and I neglected to update the documentation as such. (RT #129029)
    - Localize $^W to stop File::Temp from warning the user when the -w flag
      is on while we're grabbing a temporary file name. (RT #129029)

9999.26     2019-02-13
    - Reduce the size of handle.t to prevent failures on systems with limits set
    - Skip all tests in the suite that relied on overriding syswrite to test
      failure mechanisms as CORE::print cannot be overridden.
    - Refactor write_file to use print rather than syswrite.
      - When performing an atomic write, make sure we find a good temporary file
        so that we don't accidentally overwrite a file that may already exist in
        the working directory.
      - Stop re-working the line endings on write_file when on Windows as the use
        of print now allows layers to provide that functionality.
    - Add File::Basename, File::Spec, File::Temp, and IO::Handle to the runtime
      prereqs. These were already testing prereqs and are core.
    - Perl 5.30 compliance is complete at this point.

9999.25     2018-11-16
    - The previous release contained nothing but a documentation update. That
      updated documentation errantly mentioned pseudo-files. Pseudo-files
      are perfectly fine to use with File::Slurp.
    - Add regression test for GLOB refs being slurped in. Thank you, James Keenan!
    - Refactor read_file to use open and read rather than sysopen and sysread.
    - Add a bugwards compatible feature to keep track of the cursor when
      dealing with the DATA handle (
    - Fix a typo in the docs.

9999.24     2018-10-29
    - Document the clear downfalls of using file handles of any kind rather
      than just the file's path string.

9999.23     2018-10-20
    - Fix an error on the test rewrites with a bad value for binmode
    - Create a 00-report-prereqs.dd to ease testing on 5.6
    - Bump requirement for File::Spec to 3.01 as Cwd was shipped separately
      before and the one that came with 5.6 had Taint issues.
    - Cleaned up the Change log to make all dates uniform

9999.22     2018-10-15
    - Update the SYNOPSIS documentation. (Graham Knop)
    - Fix some EUMM metadata depending on version. (Dan Book)
    - Fix Windows path concatenation on read_dir. (James Keenan)
    - Document each function with proper POD heads and re-order in alphabetical
    - Dump the POD to GH markdown for a
    - Remove the README file
    - Remove some work-arounds for older Perls < 5.6
    - Do not inherit from Exporter (requires Exporter 5.57)
    - Fix perms.t to run on all platforms (Aristotle Pagaltzis, Linda Walsh
      via RT #92401)
    - Clean up handle.t (we no longer use the -w flag anywhere)

9999.21    2018-10-08
    - Unset $^W in a few strategic places to silence warnings when Test::Harness
      or ExtUtils::MakeMaker turn them on. (Thanks, Graham Knop).
    - Got rid of a few MYMETA leftovers in the MANIFEST
    - Add Git repository info to the Makefile
    - Add a contributor's list for display on metacpan

9999.20_02     2018-10-04  (TRIAL)
    - Update TravisCI tests to show coverage.
    - Update all remaining test files
    - Get rid of assumption of . in @INC in tests
    - Remove t/
    - Add t/lib/
    - Make sure all tests use a properly acquired temp file
    - Clean up prereqs a bit further
    - Document all failure cases in the 01-error* tests.
    - Moved the CORE:: function overrides to their own test class to only be
      included when overriding is necessary

9999.20_01     2018-09-27  (TRIAL)
    - Fixed spelling mistakes in POD (RT #85251)
    - Fixed a typo in an example (RTs #72116, #80279)
    - Remove doc mentions of Perl < 5.006 as that's required.
    - Fix POD coverage tests by adding a few more ignored functions
    - Added t/edit_file.t (James Keenan)
    - Move the POD tests to xt/author
    - Update t/append_null.t
    - Update t/binmode.t
    - Update t/data_list.t
    - Update t/data_scalar.t
    - Update t/error_mode.t
    - Update t/large.t
    - Update t/original.t
    - Update t/stringify.t
    - Added t/00-report-prereqs.t
    - Added more xt/author tests
    - Fix all trailing whitespace in accordance with xt/author/eol.t
    - Updated the Makefile.PL to get all of the prereqs in there.
    - Add CI testing via TravisCI and AppVeyor

9999.19      2011-Jun-7
    - Fixed use line in t/edit_file.t to import :edit first (paul)
    - read_file and write_file work even when interrupted by signals
      this includes a test for read_file interrupt (Andrew Danforth)
    - Fixed bugs in the config synopsis example

9999.18      2011-May-13
    - Added :std and :edit export tags
    - Cleaned up EXPORT vars
    - Documented importing edit_file and edit_file_lines
    - Fixed some pod spelling

9999.17      2011-04-27
    - Requiring Perl 5.6.2 (first time older Perls were dropped)
      This is because of use of the re 'taint' pragma
    - Added major new features: edit_file and edit_file_lines
    - Speed up of tainted slurp with return of lines
    - Added chomp option to read_file
    - Added prefix option to read_dir
    - Fixed optimization of reading small files.

9999.16   2011-04-13
    - Added support for read_file options to be a hash reference.
    - Added support for read_dir options to be a hash reference.
    - Added new feature prepend_file
    - Fixed bug with array_ref in list context. was introduced by .15/.14
      Thanks to Norbert Gruener
    - Cleaned up some pod

9999.15   2011-03-24
    - Fixed error.t test so it works when run as root
    - Removed skip lines from error.t
    - Fixed pod about binmode option to reflect changes in .14

9999.14      2011-03-20
    - Added LICENCE (same as perl) to POD
    - Added special faster code to slurp in small text files which
      is a common case
    - Rewrote the extras/ script. It has a full
      legend, better CLI options, size is selectable, benchmark
      entries have more consistant names and it compares the new
      fast slurp for small files to the general slurp code.
      Thanks to Mark Friendlich
    - Cleaned up pod
    - Added more Synopsis examples
    - Added t/error.t to actually test error conditions. Previous
      error.t was renamed to error_mode.t which better reflects its
    - t/error.t uses a new test driver module. this may get used by
      other tests in the future.
    - Fixed check for SEEK_SET and other constant subs being defined
    - Added support for binmode other than :raw and binmode.t test
      Thanks to Martin J. Evans, Peter Edwards, Bryce Nesbitt
    - Added support for perms option in write_file and perms.t test
      Thanks to Peter Corlett and Paul Miller
    - Added check to the rename call in atomic mode. Tested in error.t.
      Thanks to Daniel Scott Sterling
    - Added POD to state that using scalar_ref or buf_ref will be faster
      and save memory due to not making a copy (Peter Edwards)
    - read_file in list mode keeps data tainted (S├ębastien Aperghis-Tramoni)
    - read_file checks for an overloaded object to get the file
      name. (S├ębastien Aperghis-Tramoni)

9999.13   2006-10-10
    - Refactored the extras/ script. It has options,
      a key the benchmarks, help and more benchmarks.
    - Reordered changes so recent entries are first
    - Added error check on atomic rename and test for it. Thanks to Daniel
      Scott Sterling

9999.12   2006-02-2
    - Fixed bug on windows with classic slurping and File::Slurp not
      agreeing on newline conversion.
    - Added t/newline.t test to check for that fix.
    - When passing text data by scalar reference to write_file under
      windows, the buffer is copied so the newline conversion won't
      modify the caller's data.
    - Thanks to Johan Lodin <> for a test script which
      I modified into t/newline.t

9999.11   2005-01-20
    - Quick release to remove code that forced the faked SEEK_*
      values to be used. Showed up when tested on OSX which doesn't
      need that backport.

9999.10   2005-01-19
    - t/*.t modules don't use
    - using POSIX qw( :fcntl_h ) instead of Fcntl qw( :seek ) for
      backwards compatiblity to 5.00503
    - added conditional definitions of SEEK_* and O_* subs as they are not
      defined in perl 5.004
    - File::Slurp now runs on perl 5.004 and newer (see BUGS section)
      All of the above thanks to Smylers <>,
      Piers Kent <> and
      John Alden <>
    - Added pod.t and pod_coverage.t tests. This is to pass all
      the CPANTS tests.

9999.09  2005-04-19
    - t/original.t and read_dir.t no longer search for tempdirs. they just
      use the current dir which should be in the build directory
    - t/readdir.t renamed to read_dir.t for consistancy
    - write_file return values are docuemented
      Thanks to Adam Kennedy <>
    - added no_clobber option to write_file and t/no_clobber.t test for it
      Thanks to <>
    - fixed bug when appending a null string to a file which then
      truncates it. seems to be an odd way for linux and OS X to
      handle O_APPEND mode on sysopen. they don't seek to the end of
      the file so it gets truncated. fixed by adding a seek to the
      end if in append mode.n
      Thanks to Chris Dolan <>

9999.08  2005-04-16
    - read_dir returns an array ref in scalar context
    - read_dir keeps . and .. if keep_dot_dot option is set.
      Thanks to John Alden <>
    - slurp() is an optional exported alias to read_file
      Thanks to Damian Conway <>

9999.07  2005-01-25
    - Slurping in pseudo files (as in /proc) which show a size of 0
      but actually have data works. This seems to be the case on
      linux but on Solaris those files show their proper size.
      Thanks to Juerd Waalboer <>

9999.06  2004-09-20
    - Slurping the DATA handle now works without the workaround.
      tests are in t/data_scalar.t and t/data_list.t
    - Paragraph mode in read_file is supported. As with <> when $/
      (input record separator) is set to '', then the input file is
      split on multiple newlines (/\n\n+/).
      Thanks to Geoffrey Leach <>

9999.05  2004-02-24
    - skip handle tests where socketpair is not supported (pre 5.8
      on windows) Thanks to Mike Arms <>

9999.04  2004-02-23
    - fixed DATA handle bug in t/handle.t (not seen on most OS's) Thanks to
      James Willmore <>

9999.03  2003-12-22
    - fixed DATA handle bugs in t/handle.t on osx (should be fixed
      on BSD as well)
    - added more comments to code

9999.02  2003-12-17
    - skip DATA test in handle.t on OSX (bug in perl with sysread on DATA)
    - changed checking if file handle from fileno to ref
      from Randal Schwartz <>
    - added support for atomic spewing
    - added new test stdin.t for the fileno/ref change
    - added new test inode.t to test atomic spewing

9999.01  2003-09-01
    - original version; created by h2xs 1.21 with options -AX -n File::FastSlurp