Don't expect ASCII ordering.
[p5sagit/p5-mst-13.2.git] / lib / encoding.pm
1 package encoding;
2
3 use Encode;
4
5 sub import {
6     my ($class, $name) = @_;
7     $name = $ENV{PERL_ENCODING} if @_ < 2;
8     my $enc = find_encoding($name);
9     unless (defined $enc) {
10         require Carp;
11         Carp::croak "Unknown encoding '$name'";
12     }
13     ${^ENCODING} = $enc;
14 }
15
16 =pod
17
18 =head1 NAME
19
20 encoding - pragma to control the conversion of legacy data into Unicode
21
22 =head1 SYNOPSIS
23
24     use encoding "iso 8859-7";
25
26     $a = "\xDF";
27     $b = "\x{100}";
28
29     $c = $a . $b;
30
31     # $c will be "\x{3af}\x{100}", not "\x{df}\x{100}".
32     # The \xDF of ISO 8859-7 is \x{3af} in Unicode.
33
34 =head1 DESCRIPTION
35
36 Normally when legacy 8-bit data is converted to Unicode the data is
37 expected to be Latin-1 (or EBCDIC in EBCDIC platforms).  With the
38 encoding pragma you can change this default.
39
40 The pragma is a per script, not a per block lexical.  Only the last
41 'use encoding' seen matters.
42
43 =head1 FUTURE POSSIBILITIES
44
45 The C<\x..> and C<\0...> in literals and regular expressions are not
46 affected by this pragma.  They probably should.  Ditto C<\N{...}>.
47
48 =head1 SEE ALSO
49
50 L<perlunicode>
51
52 =cut
53
54 1;