File::Slurp::Unicode(3) 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.

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 <[email protected]>

<http://porkrind.org/>