http://www.perlmonks.org?node_id=289947


in reply to Re: •Re: Check whether your hash keys have random order
in thread Check whether your hash keys have random order

The use version creates a tied perl hash, employing caching ... while the other version doesn't bother to do that and simply matches on a scalar.
perl -d:Trace -V:ccflags >> Config.pm:1012: foreach(@_){ >> Config.pm:1013: config_re($_), next if /\W/; >> Config.pm:1014: my $v=(exists $Config{$_}) ? $Config{$_} : 'UNKNOW +N'; >> Config.pm:988: exists($_[0]->{$_[1]}) or >> Config.pm:882: return $_[0]->{$_[1]} if (exists $_[0]->{$_[1]}) +; >> Config.pm:885: my($value, $start, $marker, $quote_type); >> Config.pm:887: $quote_type = "'"; >> Config.pm:889: if ($_[1] eq 'byteorder') { >> Config.pm:929: $marker = "$_[1]="; >> Config.pm:932: $start = index($config_sh, "\n$marker$quote_type") +; >> Config.pm:934: if ($start == -1) { >> Config.pm:938: return undef if ( ($start == -1) && # in case it' +s first >> Config.pm:940: if ($start == -1) { >> Config.pm:947: $start += length($marker) + 2; >> Config.pm:949: $value = substr($config_sh, $start, >> Config.pm:956: if ($quote_type eq '"') { >> Config.pm:963: $value = undef if $value eq 'undef'; >> Config.pm:964: $_[0]->{$_[1]} = $value; # cache it >> Config.pm:965: return $value; >> Config.pm:1015: $v='undef' unless defined $v; >> Config.pm:1016: print "$_='$v';\n"; ccflags='-nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAV +E_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -D PERL_MSVCRT_READFIX'; >> Config.pm:1012: foreach(@_){
Maybe i'm wrong ...