NAME
File::Slurp::Unicode - Reading/Writing of Complete Files with Character Encoding Support
SYNOPSIS
use File::Slurp::Unicode;
my $text = read_file('filename', encoding => 'utf8');
my @lines = read_file('filename'); # utf8 is assumed if no encoding.
write_file('filename', { encoding => 'utf16' }, @lines);
# same as File::Slurp::write_file (ie. no encoding):
write_file('filename', { encoding => 'binary' }, @lines);
use File::Slurp::Unicode qw(slurp);
my $text = slurp('filename', encoding => 'latin1');
DESCRIPTION
This module wraps File::Slurp and adds character encoding support through the encoding
parameter. It exports the same functions which take all the same parameters as File::Slurp. Please see the File::Slurp documentation for basic usage; only the differences are described from here on out.
read_file
Pass in an argument called encoding
to change the file encoding. If no argument is passed in, UTF-8 encoding is assumed.
The special encoding 'binary' is interpreted to mean that there should be no decoding done to the data after reading it. This is pretty much the same as calling File::Slurp::read_file()
directly. This option is here only to make code which needs to read both binary and text files look uniform.
write_file
Pass in an argument called encoding
to change the file encoding. If no argument is passed in and no wide characters are present in the output data, then no conversion will be done. If there are wide characters in the output data then UTF-8 encoding is assumed.
The special encoding 'binary' is interpreted to mean that there should be no encoding done to the data before writing. If you pass a wide string (a string with Perl's internal 'utf8 bit' set) to write_file
and set the encoding to 'binary' it will die with an appropriate message. This is pretty much the same as calling File::Slurp::write_file()
directly. This option is here only to make code which needs write both binary and text files look uniform.
SEE ALSO
BUGS
None known. Contact author or file a bug report on CPAN if you find any.
COPYRIGHT
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Copyright (C) 2010 David Caldwell
AUTHOR
David Caldwell <david@porkrind.org>