Package: perl Version: 5.24.1-3+deb9u2 Severity: normal Dear Maintainer, this optimization has bitten me once again, so I report this as a bug...
Run the code: #!/usr/bin/perl -CSDA use utf8; use strict; use warnings; my %h; $h{'Góry'} = 1; 'Góry' =~ /\A[[:alnum:]]*\z/ or die "error 1"; for (keys %h) { $_ =~ /\A[[:alnum:]]*\z/u or die "error 2"; } for (keys %h) { $_ =~ /\A[[:alnum:]]*\z/ or die "error 3"; } It prints error 3. This means that perl somehow degrades utf string to bytes in keys of hases. Was discussed here also: http://www.perlmonks.org/?node_id=1197369 -- System Information: Debian Release: 9.4 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-6-amd64 (SMP w/4 CPU cores) Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE=pl_PL.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages perl depends on: ii dpkg 1.18.24 ii libperl5.24 5.24.1-3+deb9u2 ii perl-base 5.24.1-3+deb9u2 ii perl-modules-5.24 5.24.1-3+deb9u2 Versions of packages perl recommends: ii netbase 5.4 pn rename <none> Versions of packages perl suggests: pn libterm-readline-gnu-perl | libterm-readline-perl-perl <none> pn make <none> pn perl-doc <none> -- no debconf information