1package PerlIO::encoding; 2 3use strict; 4our $VERSION = '0.09'; 5our $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 13use XSLoader (); 14XSLoader::load(__PACKAGE__, $VERSION); 15 16our $fallback = 17 Encode::PERLQQ()|Encode::WARN_ON_ERR()|Encode::STOP_AT_PARTIAL(); 18 191; 20__END__ 21 22=head1 NAME 23 24PerlIO::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 36Open a filehandle with a transparent encoding filter. 37 38On input, convert the bytes expected to be in the specified 39character set and encoding to Perl string data (Unicode and 40Perl's internal Unicode encoding, UTF-8). On output, convert 41Perl string data into the specified character set and encoding. 42 43When the layer is pushed the current value of C<$PerlIO::encoding::fallback> 44is saved and used as the CHECK argument when calling the Encode methods encode() 45and decode(). 46 47=head1 SEE ALSO 48 49L<open>, L<Encode>, L<perlfunc/binmode>, L<perluniintro> 50 51=cut 52