Операторы в Perl.
Набор оператор языка Perl очень широк. Здесь приведены лишь основные, необходимые для понимания языка и достаточные для того, чтобы начать писать на нем программы.
- Условные операторы
-
Классический оператор if. В Perl он имеет две формы. Различаются они только в оформлении: первая начинается с условия, а вторая им заканчивается:
if (условие) {последовательность операторов};
{последовательность операторов} if (условие);
-
Второй оператор условия unless отличается от первого только отрицанием. То есть действие выполняется если условие не выполняется:
unless (условие) {последовательность операторов};
{последовательность операторов} unless (условие);
-
Циклы.
-
Цикл с предусловием while. Ничем не отличается от аналога из языка C:
while (условие) {последовательность операторов};
И аналогичный ему цикл с отрицанием условия until:
until (условие) {последовательность операторов};
-
Цикл с постусловием while. Отличается от предыдущего лишь тем, что условие проверяется после выполнения тела цикла:
{последовательность операторов} while (условие);
И аналогичный ему цикл с отрицанием условия until:
{последовательность операторов} until (условие);
-
Цикл с параметром for также аналогичен как по синтаксису так и по смыслу аналогу из языка C. Ниже приведен пример:
for ($i=0; $i<10; $i++) {print $i;};
-
Особенностью языка является цикл foreach . Такой цикл позволяет пройти все элементы массива, поочередно присваивая его элементы какой-то переменной. Очевидно число итераций цикла равно количеству элементов в массиве. Вот синтаксис оператора:
foreach $переменная (@массив) {последовательность операторов};
Здесь же остановимся на еще одной важной
особенности языка Perl - переменной по умолчанию $_. Во многих операторах языка при опускании аргумента она предполагается по умолчанию. Ниже приведены два фрагмента программы, делающие одни и те же действия:
foreach (@Data) {
chomp;
print if /^From/};
foreach $_ (@Data) {
chomp($_);
print $_ if $_=/^From/};
-
Оператор подстановки. . Он разыскивает в строке подстроку и заменяет ее на другую,
используя регулярные
выражения . Синтаксис: s/рег_выражение/строка;
Имеются следующие необязательные опции:
игнорировать регистр - опция i, глобальная (по всей строке) замена - опция g.
Пример:
$x="This is test";
$x=~s/ test/smth_else/;
print $x;
#This_is_smth_else
-
Оператор проверки совпадений.
Сопоставляет указанный шаблон и
заданный текст (по умолчанию - из
переменной $_). Синтаксис: m/шаблон/;
Пример:
if ($text=~ m/quit/){exit;}#находится подстрока
quit. Значение переменной не меняется.
(Оператор !~ вместо =~ меняет
смысл сравнения).
-
Оператор замены. Как и оператор
подстановки, он изменяет входной текст,
но при этом регулярные выражения не
используются. Синтаксис: tr/строка1/строка2/;
(строка1 заменяется на строку2);
Пример:
$text="RAM";
$text=~ tr/A/O/;
print $text; #ROM