X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Futfhash.t;h=33909c0cbc7bc49478a9e20a77af16b952dfa928;hb=5fec3b1d36062f79cb996123dc191025c139d617;hp=af7e6c12960ccf513e527b446140dd124838dee1;hpb=19692e8d256164f96817d6df6ecee26c3cda4ae9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/utfhash.t b/t/op/utfhash.t index af7e6c1..33909c0 100644 --- a/t/op/utfhash.t +++ b/t/op/utfhash.t @@ -5,7 +5,7 @@ BEGIN { @INC = '../lib'; require './test.pl'; - plan(tests => 91); + plan(tests => 97); } use strict; @@ -32,8 +32,9 @@ is($hashu{"\xff"},0xFF); is($hashu{"\x7f"},0x7F); # Now try same thing with variables forced into various forms. -foreach my $a ("\x7f","\xff") +foreach ("\x7f","\xff") { + my $a = $_; # Force a copy utf8::upgrade($a); is($hash8{$a},ord($a)); is($hashu{$a},ord($a)); @@ -56,8 +57,9 @@ $hash8{chr(0x1ff)} = 0x1ff; # Check we have not got an spurious extra keys is(join('',sort { ord $a <=> ord $b } keys %hash8),"\x7f\xff\x{1ff}"); -foreach my $a ("\x7f","\xff","\x{1ff}") +foreach ("\x7f","\xff","\x{1ff}") { + my $a = $_; utf8::upgrade($a); is($hash8{$a},ord($a)); my $b = $a.chr(100); @@ -69,8 +71,9 @@ foreach my $a ("\x7f","\xff","\x{1ff}") is(delete $hashu{chr(0x1ff)},0x1ff); is(join('',sort keys %hashu),"\x7f\xff"); -foreach my $a ("\x7f","\xff") +foreach ("\x7f","\xff") { + my $a = $_; utf8::upgrade($a); is($hashu{$a},ord($a)); utf8::downgrade($a); @@ -170,3 +173,16 @@ foreach my $a ("\x7f","\xff") } } + +{ + # See if utf8 barewords work [perl #22969] + use utf8; + my %hash = (тест => 123); + is($hash{тест}, $hash{'тест'}); + is($hash{тест}, 123); + is($hash{'тест'}, 123); + %hash = (тест => 123); + is($hash{тест}, $hash{'тест'}); + is($hash{тест}, 123); + is($hash{'тест'}, 123); +}