Я постоянно использую map
и grep
. И apply
, first
, any
и многие другие из List::MoreUtils
. Я обнаружил, что, в общем, они объясняют , что делает код, а не , как код делает это.
В общем, я считаю, что когда мой код читает то же самое, что и спецификация, он, скорее всего, будет правильным, а также с большей вероятностью обработает угловые / краевые случаи. Perl позволяет мне делать это намного лучше, чем любой другой язык, который я использовал в прошлом, и я этим пользуюсь.
Например, если моя спецификация говорит, что я сделаю foo()
, если $blah
есть в каком-то списке, мой код читается именно так:
foo() if any { $_ eq $blah } some_list();
Та же идея для остальных этих инструментов. Код и спецификация выглядят очень похожими, и это одна из замечательных особенностей Perl.