if: ($var eq "A" || $var eq 'B' || $var eq 'C') ihash: { A=>1, B=>1, C=>1 }->{$var} shash: $hash{$var} re: $var =~ /^(?:A|B|C)\z/ Benchmarking no matches Rate ihash re if shash ihash 328339/s -- -79% -81% -86% re 1557274/s 374% -- -10% -33% if 1738308/s 429% 12% -- -25% shash 2307394/s 603% 48% 33% -- Benchmarking match A Rate ihash re shash if ihash 333900/s -- -78% -83% -88% re 1532032/s 359% -- -21% -43% shash 1946689/s 483% 27% -- -28% if 2707780/s 711% 77% 39% -- Benchmarking match B Rate ihash re shash if ihash 324969/s -- -78% -84% -84% re 1473476/s 353% -- -26% -28% shash 2004671/s 517% 36% -- -2% if 2053900/s 532% 39% 2% -- Benchmarking match C Rate ihash re if shash ihash 335514/s -- -76% -81% -83% re 1392243/s 315% -- -20% -28% if 1744756/s 420% 25% -- -9% shash 1920959/s 473% 38% 10% --