ние к аргументам выполняется с помощью переменной $_и индексов. $_[0] соответствует первому аргументу
$#_ Количество аргументов, передаваемых текущей функции
Операции сравнения. В языке Perl для сравнения строковых и числовых значений применяются различные наборы операторов. Строковые операторы записываются в виде двухбуквенных кодов, как в интерпретаторе BASH shell, например: eq (проверка идентичности двух строк), gt (сопоставление размеров строк). В качестве операторов сравнения числовых значений выступают символы, которые употребляются и в других языках программирования (в частности, в С): > — больше чем, = = — равно и т. д.
В операциях сравнения используются также шаблоны. Оператор строкового шаблона, =~, выполняет проверку соответствия строки шаблону. Правый операнд является шаблоном, а левый представляет собой строку. Шаблоном может быть любое регулярное выражение, что делает эту операцию универсальной.
Шаблоны сравниваются либо с заданной строкой, либо с содержимым специальной переменной — $_. Оператор шаблона состоит из двух символов «/», между которыми указывается шаблон для поиска (любое регулярное выражение): /шаблон/.
Язык Perl поддерживает логические операции И, ИЛИ и НЕ. Каждая из них имеет два варианта: стандартный и применяемый при обработке списков. К категории стандартных логических операторов принадлежат ss, | | и !. Оператор && соответствует логической операции И, || — ИЛИ, ! — НЕ. Рассмотрим их синтаксис:
(выражение) && (выражение)
(выражение) || (выражение)
!{выражение)
Логическая операция И (&&) возвращает значение 0 (истинна), если оба выражения возвращают значение 0 (истина). Логическая операция ИЛИ (||) возвращает значение О (истина), если хотя бы одно из выражений является истинным. Допускается как раздельное, так и совместное применение описанных логических операций. Один из случаев использования — тестирование управляющих структур (таких, как while и if).
В сценариях Perl часто можно встретить операцию ИЛИ, которая используется вместе с командой открытия файла. Если при выполнении операции ИЛИ первое выражение является ложным, проверяется второе выражение. Предположим, что вторым выражением является команда die, завершающая работу программы. Тогда в случае неудачного выполнения операции открытия файла работа программы будет завершена (первое выражение является ложным).
open (REPS, "+> $filen") or die "Can't open $filen";
Операция И работает подобным образом с той разницей, что второе выражение проверяется тогда, когда первое истинно. В следующем примере задан поиск пустой строки и вывод сообщения при ее обнаружении.
/^$/ && print "Found empty line";
Циклы. В языке Perl имеются следующие циклы: while, do-until, for и foreach. Цикл while является универсальным, в то время как циклы for и foreach служат для решения специфических задач. Цикл foreach представляет собой удобное средство обработки списков и массивов. Циклы while, do-until и for во многом подобны их эквивалентам в языке С. Так, цикл for поддерживает те же три формата выражений. Цикл foreach похож на одноименный цикл в интерпретаторе С shell и облегчает обработку списков элементов.
Цикл while можно адаптировать для работы с массивами. Для управления таким циклом (и индексирования элементов массива) применяют переменную, которую помещают внутрь цикла. В следующем примере элементам массива title присваиваются значения, после чего содержимое каждого элемента выводится на экран с помощью цикла for. Обратите внимание на то, что значением переменной $#num является число элементов массива. Это значение используется в проверочном выражении цикла for и указывает, когда должен завершиться цикл.