См. Как на самом деле работают хеши для обсуждения этой темы. Короче говоря, пока вы цитируете ключ (без интерполяции q {}), вы можете использовать любые символы, которые захотите.
Что касается ответа Даны, нет, для сопоставления более длинных ключей не потребуется больше времени: для хеширования ключа потребуется гораздо больше времени, но это все.
Для справки, это функция хеширования в Perl 5.10.0:
#define PERL_HASH(hash,str,len)
STMT_START {
register const char * const s_PeRlHaSh_tmp = str;
register const unsigned char *s_PeRlHaSh = (const unsigned char *)s_PeRlHaSh_tmp;
register I32 i_PeRlHaSh = len;
register U32 hash_PeRlHaSh = PERL_HASH_SEED;
while (i_PeRlHaSh--) {
hash_PeRlHaSh += *s_PeRlHaSh++;
hash_PeRlHaSh += (hash_PeRlHaSh << 10);
hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6);
}
hash_PeRlHaSh += (hash_PeRlHaSh << 3);
hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11);
(hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15));
} STMT_END