kappa has asked for the wisdom of the Perl Monks concerning the following question:
It looks like in presence of use utf8 hash keys upgraded from barewords via virtues of => operator get the utf8 flag. Quoted string literals on the contrary get this flag on if they contain characters with high codes -- in full accordance with the docs. It cost us a lot of blood and sweat to debug why some perfectly ASCII strings would suddenly get the flag.#! /usr/bin/perl use strict; use warnings; use utf8; sub U { return utf8::is_utf8($_[0])?'is_utf8':'not_utf8'; } my %s = ( MaxAccountSize1 => 1, 'MaxAccountSize2' => 1, 2 => 1, ); foreach (sort keys %s) { print "'$_' ".U($_)." => '".$s{$_}."' ".U($s{$_})."\n"; }
Is there any rationale in such decision? Is it a bug? Does anyone know what the performance penalty of utf8 hash keys -- even if they contain only ASCII chars -- is?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Unexpected utf8 in hash keys
by kappa (Chaplain) on Feb 20, 2008 at 11:27 UTC | |
by ikegami (Patriarch) on Feb 20, 2008 at 12:57 UTC | |
by ikegami (Patriarch) on Feb 20, 2008 at 12:45 UTC | |
by ikegami (Patriarch) on Feb 20, 2008 at 12:03 UTC | |
|
Re: Unexpected utf8 in hash keys
by graff (Chancellor) on Feb 20, 2008 at 13:57 UTC | |
by kappa (Chaplain) on Feb 20, 2008 at 15:06 UTC | |
|
Re: Unexpected utf8 in hash keys
by pc88mxer (Vicar) on Feb 20, 2008 at 14:13 UTC | |
by kappa (Chaplain) on Feb 20, 2008 at 15:01 UTC | |
|
Re: Unexpected utf8 in hash keys
by doc_faustroll (Scribe) on Feb 20, 2008 at 18:19 UTC | |
|
Re: Unexpected utf8 in hash keys
by Juerd (Abbot) on Feb 21, 2008 at 01:42 UTC | |
by kappa (Chaplain) on Feb 26, 2008 at 18:29 UTC | |
|
Re: Unexpected utf8 in hash keys
by creamygoodness (Curate) on Aug 27, 2009 at 11:12 UTC |