in reply to List::Util::first in Scalar-List-Utils distribution

Your outer block is doing nothing.
scalar grep { ??? == scalar grep { ... } @$_ } values %hash; first { ??? == first { ... } @$_ } values %hash;
You need something meaningful in the ??? area. The reason first is so fast there is because you're merely testing to see if some number (specifically, the number returned by the innermost first) is true.

_____________________________________________________
Jeff japhy Pinyan: Perl, regex, and perl hacker.
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;