Регулярные выражения Perl и их применение

       

Функция grep


Функция grep является мощным инструментом для создания из списков подсписков по определенным критериям. Эта мощь обусловлена тем фактом, что данная функция может использовать регулярные выражения. Модификаторы этого регулярного выражения те же, что и у оператора split. Функция grep имеет две разновидности вызова:

grep { блок команд } список

и

grep выражение, список

Эта функция в неявном цикле по всем элементам списка для каждого из них выполняет заданный блок команд или выражение. Причем при каждой итерации цикла во время выполнерия блока команд или выражения переменная $_ является синонимом очередного элемента списка. В частности, присвоение этой переменной значения повлечет присвоение этого же значения соответствующему элементу списка. Функция в качестве результата возвращает подсписок, для которых вычисленное значение выражения/блока команд является истиной (отлично от нуля, пустой строки и т.д.). Например, код

open F, 'prog.pl'; print grep { !/^#|^\s*$/m } <F>; close F;

распечатает все строки файла prog.pl, которые не начинаются с символа # и не содержат одни лишь пробельные символы.



Содержание раздела