По мере усложнения ваших скриптов Perl возникнет много случаев, когда вы захотите узнать больше, чем просто проверить, совпадает ли образец со строкой или нет. Например, может потребоваться, чтобы скрипт извлек определенное значение строки. Используя символы группировки () внутри регулярного выражения, скрипт может извлечь соответствующие образцу значения из строки и сформировать из них список. Например, следующий фрагмент программы использует регулярные выражения для того, чтобы извлечь месяцы, дни и годы из списка:
$str = “ January 1, 1997, ”;
($m, $d, $y) = $str =~ /\s*(\S*)\s + (\d+)\D + (\d{4})/;
В этом случае можно прочитать регулярные выражения следующим образом:
· Пропустить вначале любой специальный символ;
· записать все символы, не являющиеся специальными, в переменную $ m (переменная для обозначения месяцев);
· пропустить специальный символ;
· поместить все цифры в переменную $ d (переменная для записи дней);
· пропустить все знаки, не являющиеся цифрами;
· записать четыре цифры в переменную $у (переменная для обозначения лет).
Perl поддерживает также другую форму сравнения с образцом, использующую оператор (=~), который добавляет отрицание результата: (!~). Этот оператор эквивалентен выражению !($ str =~/ pattern /).