perldocs говорят о last:
lastне может использоваться для выхода из блока, который возвращает значение, напримерeval {},sub {}илиdo {}, и не должен использоваться для выхода из операции grep() или map().
Почему этого следует избегать в grep() или map()? Мне особенно интересна карта, поскольку она является альтернативой конструкции foreach. Документы, похоже, настаивают на том, чтобы что-то не делать, не описывая последствий.