summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Unicode/Collate.pm26
-rw-r--r--lib/charnames.t8
2 files changed, 21 insertions, 13 deletions
diff --git a/lib/Unicode/Collate.pm b/lib/Unicode/Collate.pm
index 8522a79f2c..43446162a9 100644
--- a/lib/Unicode/Collate.pm
+++ b/lib/Unicode/Collate.pm
@@ -137,24 +137,26 @@ sub parseEntry
# get element
my($e, $k) = split /;/, $line;
my @e = _getHexArray($e);
- $ele = pack('U*', @e);
+ { no warnings 'utf8'; $ele = pack('U*', @e); }
return if defined $self->{undefChar} && $ele =~ /$self->{undefChar}/;
# get sort key
- if(
+ { no warnings 'utf8';
+ if(
defined $self->{ignoreName} && $name =~ /$self->{ignoreName}/ ||
defined $self->{ignoreChar} && $ele =~ /$self->{ignoreChar}/
- )
- {
- $self->{entries}{$ele} = $self->{ignored}{$ele} = 1;
- }
- else
- {
- foreach my $arr ($k =~ /\[(\S+)\]/g) {
- my $var = $arr =~ /\*/;
- push @key, $self->altCE( $var, _getHexArray($arr) );
+ )
+ {
+ $self->{entries}{$ele} = $self->{ignored}{$ele} = 1;
+ }
+ else
+ {
+ foreach my $arr ($k =~ /\[(\S+)\]/g) {
+ my $var = $arr =~ /\*/;
+ push @key, $self->altCE( $var, _getHexArray($arr) );
+ }
+ $self->{entries}{$ele} = \@key;
}
- $self->{entries}{$ele} = \@key;
}
$self->{maxlength}{ord $ele} = scalar @e if @e > 1;
}
diff --git a/lib/charnames.t b/lib/charnames.t
index 1beecf3f71..31231270a6 100644
--- a/lib/charnames.t
+++ b/lib/charnames.t
@@ -12,7 +12,7 @@ BEGIN {
$| = 1;
-print "1..38\n";
+print "1..39\n";
use charnames ':full';
@@ -220,3 +220,9 @@ print "ok 33\n";
print "not " unless charnames::viacode(0xFEFF) eq "ZERO WIDTH NO-BREAK SPACE";
print "ok 38\n";
+{
+ use warnings;
+ print "not " unless ord("\N{BOM}") == 0xFEFF;
+ print "ok 39\n";
+}
+