package String::Multibyte::UTF32BE; use vars qw($VERSION); $VERSION = '1.04'; +{ charset => 'UTF-32BE', regexp => '(?:\x00\x00[\x00-\xD7\xE0-\xFF][\x00-\xFF]|' . '\x00[\x01-\x10][\x00-\xFF][\x00-\xFF])', cmpchar => sub { $_[0] cmp $_[1] }, nextchar => sub { my $u = unpack('N', $_[0]); return if 0x10FFFF <= $u; pack('N', $u == 0xD7FF ? 0xE000 : $u + 1); }, hyphen => "\x00\x00\x00-", escape => "\x00\x00\x00\\", }; __END__ =head1 NAME String::Multibyte::UTF32BE - internally used by String::Multibyte for UTF-32BE =head1 SYNOPSIS use String::Multibyte; $utf32be = String::Multibyte->new('UTF32BE'); $utf32be_length = $utf32be->length($utf32be_string); =head1 DESCRIPTION C is used for manipulation of strings in UTF-32BE. Character order: C, C. =head1 CAVEAT Surrogate characters C are excluded. A hyphen for a character range also must be properly encoded (i.e. C<"\x00\x00\x00\x2D">). =head1 SEE ALSO L =cut