On Thu, 21 Mar 2002 22:12:33 +0900
SADAHIRO Tomoyuki <bqw10602(_at_)nifty(_dot_)com> wrote:
Nevertheless, we shouldn't distinguish Unicode-ness of hash keys;
otherwise we'd be upset more... :-)
#!perl
use charnames qw(:full);
my $alpha = "\N{GREEK SMALL LETTER ALPHA}";
# "\x{945}" = "\xCE\xB1" UTF8
my $latin =
"\N{LATIN CAPITAL LETTER I WITH CIRCUMFLEX}\N{PLUS-MINUS SIGN}";
# "\xCE\xB1" Bytes
my %hash;
$hash{$alpha} = "foo";
$hash{$latin} = "bar";
print $hash{$alpha} eq $hash{$latin} ? "not ok" : "ok";
# Perl 5.6.1 says "not ok",
# while Perl 5.7.3 says "ok".
Sorry, that is a bad example.
A better one:
#!perl
my %hash;
$hash{"\xA1"} = "foo";
$hash{"\xC2\xA1"} = "bar";
print $hash{pack('U', 0xA1)};
# "foo" on Perl 5.7.3
# "bar" on Perl 5.6.1
# U+00A1 is "\xC2\xA1" in UTF-8.
Regards,
SADAHIRO Tomoyuki