in reply to find closest element of array without going over

If the numbers in your @array have relatively small values (say less than 10**6), and are relatively close to each other, you could trade memory for speed thus:
my ($i, @a2); $a2[ $array[$_] ]=$_ for 0..$#array; for ($i = $find; $i >0; $i--) { last if defined $a2[$i]; } print "Method 2: $i \n";

     Have you been high today? I see the nuns are gay! My brother yelled to me...I love you inside Ed - Benny Lava, by Buffalax