Yes, you're quite right - if I were going to use those conditionals more than a few times in any given script I'd set up the hashes once only and spread the overhead. This was more about satisfying my curiosity than about optimisation - in the spirit of that curiosity, here are the results with any hashes involved set once only:
10000 trials of abigail (494.672ms total), 49us/trial
10000 trials of broquaint (93.071s total), 9.307ms/trial
10000 trials of esper (533.643ms total), 53us/trial
10000 trials of ferrency (547.466ms total), 54us/trial
10000 trials of george_sherston1 (654.023ms total), 65us/trial
10000 trials of george_sherston2 (837.320ms total), 83us/trial
10000 trials of george_sherston3 (715.834ms total), 71us/trial
10000 trials of samtregar (1.022s total), 102us/trial
§
George Sherston