This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Clarify docs
[perl5.git] / ext / PerlIO / encoding / encoding.pm
1 package PerlIO::encoding;
2
3 use strict;
4 our $VERSION = '0.09';
5 our $DEBUG = 0;
6 $DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
7
8 #
9 # Equivalent of this is done in encoding.xs - do not uncomment.
10 #
11 # use Encode ();
12
13 use XSLoader ();
14 XSLoader::load(__PACKAGE__, $VERSION);
15
16 our $fallback =
17     Encode::PERLQQ()|Encode::WARN_ON_ERR()|Encode::STOP_AT_PARTIAL();
18
19 1;
20 __END__
21
22 =head1 NAME
23
24 PerlIO::encoding - encoding layer
25
26 =head1 SYNOPSIS
27
28   open($f, "<:encoding(foo)", "infoo");
29   open($f, ">:encoding(bar)", "outbar");
30
31   use Encode qw(:fallbacks);
32   $PerlIO::encoding::fallback = FB_PERLQQ;
33
34 =head1 DESCRIPTION
35
36 Open a filehandle with a transparent encoding filter.
37
38 On input, convert the bytes expected to be in the specified
39 character set and encoding to Perl string data (Unicode and
40 Perl's internal Unicode encoding, UTF-8).  On output, convert
41 Perl string data into the specified character set and encoding.
42
43 When the layer is pushed the current value of C<$PerlIO::encoding::fallback>
44 is saved and used as the CHECK argument when calling the Encode methods encode()
45 and decode().
46
47 =head1 SEE ALSO
48
49 L<open>, L<Encode>, L<perlfunc/binmode>, L<perluniintro>
50
51 =cut