NAME
utf8::all - turn on Unicode - all of it
VERSION
version 0.014
SYNOPSIS
use utf8::all; # Turn on UTF-8, all of it.
# Also provide UTF-8 versions of functions from...
use utf8::all qw(File::Find); # File::Find
use utf8::all qw(Cwd); # Cwd
use utf8::all qw(:all); # everything
open my $in, '<', 'contains-utf8'; # UTF-8 already turned on here
print length 'føø bār'; # 7 UTF-8 characters
my $utf8_arg = shift @ARGV; # @ARGV is UTF-8 too (only for main)
DESCRIPTION
utf8 allows you to write your Perl encoded in UTF-8. That means UTF-8 strings, variable names, and regular expressions.
utf8::all goes further:
- Makes
@ARGVencoded in UTF-8 (whenutf8::allis used from the main package). - Filehandles are opened with UTF-8 encoding turned on by default
(including STDIN, STDOUT, STDERR). If you don't want UTF-8 for a
particular filehandle, you'll have to set
binmode $filehandle. - charnames are imported so
\N{...}sequences can be used to compile Unicode characters based on names. - readdir now returns UTF-8
- glob and the
<>operator
Import options
If you provide the File::Find or Cwd options to the
use utf8::all line, those modules are loaded if they haven't
been already, but you will get UTF-8-ified versions instead of the
normal ones. This effect is lexical.
-
findandfinddepth -
wd,fastcwd,getcwd,fastgetcwdabs_path,realpath,fast_abs_path
Use use utf8::all qw(:all) to get all of these, plus whatever
we dream up in the future.
Lexical scope
The pragma is lexically-scoped, so you can do the following if you had some reason to:
{
use utf8::all;
open my $out, '>', 'outfile';
my $utf8_str = 'føø bār';
print length $utf8_str, "\n"; # 7
print $out $utf8_str; # out as utf8
}
open my $in, '<', 'outfile'; # in as raw
my $text = do { local $/; <$in>};
print length $text, "\n"; # 10, not 7!
INTERACTION WITH AUTODIE
If you use autodie, which is a great idea, you need to use at least version 2.12, released on June 26, 2012. Otherwise, autodie obliterates the IO layers set by the open pragma. See RT #54777 and GH #7.
AVAILABILITY
The project homepage is http://metacpan.org/release/utf8-all/.
The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see https://metacpan.org/module/utf8::all/.
SOURCE
The development version is on github at http://github.com/doherty/utf8-all and may be cloned from git://github.com/doherty/utf8-all.git
BUGS AND LIMITATIONS
You can make new bug reports, and view existing ones, through the web interface at https://github.com/doherty/utf8-all/issues.
AUTHORS
- Michael Schwern mschwern@cpan.org
- Mike Doherty doherty@cpan.org
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Michael Schwern mschwern@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.