В последнее время я много думал о функциональном программировании. Perl предлагает довольно много инструментов для этого, но есть кое-что, что я пока не смог найти.
Prototype имеет функцию обнаружения для перечислителей, описания просто такие:
Enumerator.detect(iterator[, context]) -> firstElement | undefined
Finds the first element for which the iterator returns true.
В этом случае перечислителем является любой список, а итератор - ссылка на функцию, которая поочередно применяется к каждому элементу списка.
Я ищу что-то подобное, чтобы применять его в ситуациях, когда важна производительность, то есть остановка при встрече с матчем экономит время, игнорируя остальную часть списка.
Я также ищу решение, которое бы не включало загрузку какого-либо дополнительного модуля, поэтому, если возможно, это должно быть сделано только со встроенными модулями. И, если возможно, он должен быть таким же кратким, как это, например:
my @result = map function @array;