Here is the benchmark test I ran. There seems to be a non-negligible difference, but it isn't big enough to worry about unless you are trying some sort of highspeed realtime application. I didn't do any printouts, to be fair.
#!/usr/bin/perl
use warnings;
use strict;
use Benchmark;
my %bighashname;
my %b;
timethese(10000, {
hashbigname => sub {
for(1..1000){
$bighashname{"bighashval$_"} = $_
}
for(1..1000){
$bighashname{"bighashval$_"}++;
}
},
hashsmallname => sub {
for(1..1000){
$b{"b$_"} = $_
}
for(1..1000){
$b{"b$_"}++;
}
},
});
#Benchmark: timing 10000 iterations of hashbigname, hashsmallname...
#hashbigname: 39 wallclock secs (39.27 usr + 0.00 sys = #39.27 CPU) @
+ 254.65/s (n=10000)
#hashsmallname: 35 wallclock secs (34.66 usr + 0.00 sys = #34.66 CPU)
+ @ 288.52/s (n=10000)
I'm not really a human, but I play one on earth.
flash japh