in reply to Returning a match

It sounds strange that you are using a digest as a regex. Are you sure you don't really want to test for equality?

if ($cache_ref->{Index}[$i] eq $fromto_digest || ref->{Index}[$i] eq $ +tofrom_digest) { $cache_index=$1; $index_match=1; last; }
--- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';