Владимир Маслов - Введение в Perl
- Название:Введение в Perl
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владимир Маслов - Введение в Perl краткое содержание
В книге приводятся начальные сведения по новому языку программирования Перл.
Данный язык получил широкое распространение в связи с развитием компьютерной сети Интернет. Все примеры в книге проверены для Перл версии 5.003 операционной системы Unix FreeBSD 2.1.0.
Для программистов, системных администраторов и пользователей компьютеров.
Введение в Perl - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Декларация подпрограмм позволяет использовать имя подпрограммы как списковый оператор начиная с момента декларирования.
Пример:
sub test; # Декларация подпрограммы test
$var1 = test $0;# Использование как оператора списка.
Декларации подпрограмм могут быть загружены из отдельного файла предложением require или загружено и импортировано в текущую область имен предложением use . Подробно см. главу Модули.
Простое предложение.
Простое предложение обязательно заканчивается символом ' ;' если только это не последнее предложение в блоке где ' ;' можно опустить. Заметьте что существуют операторы такие как eval{}и do{}которые выглядят как сложные предложения но на самом деле это термы и требуют обязательного указания конца предложения.
Любое простое предложение может содержать single модификатор перед ' ;'. Существуют следующие single модификаторы:
if EXPR
unless EXPR
while EXPR
until EXPR
где EXPR – выражение возвращающее логическое значение true или false .
Модификаторы while и until вычисляются в начале предложения кроме блока do который выполняется первым.
if EXPR – Модификатор «если». Предложение выполняется если EXPR возвращает true.
Пример:
$var = 1;
$var2 = 3 if $var > 0; # Результат: $var2 = 3
while EXPR – Модификатор «пока». Предложение выполняется столько раз пока EXPR = true
Пример:
$var = 1;
print $var++ while $var < 5; # Печать $var с инкрементом
Результат: 1234
until EXPR – Модификатор "до ". Предложение выполняется до тех пор пока EXPR = false
Пример:
$var = 1;
print $var++ until $var > 5;# Печать $var с инкрементом
Результат: 12345
unless EXPR – Модификатор «если не» . Обратный к if. Выражение выполняется есле EXPR = false .
Пример:
$var = 1;
print $var++ unless $var > 5;# Печать $var с инкрементом
Результат: 1
Последовательность простых предложений ограниченная функциональными ограничителями называется блоком. В Перл это может быть целый файл, последовательность предложений в операторе eval{}или чаще всего это множество простых предложений ограниченных круглыми скобками ' {}'.
Сужествуют следующие виды сложных предложений:
if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
LABEL while (EXPR) BLOCK
LABEL while (EXPR) BLOCK continue BLOCK
LABEL for (EXPR; EXPR; EXPR) BLOCK
LABEL foreach VAR (LIST) BLOCK
LABEL BLOCK continue BLOCK
Обратите внимание, что сложные предложения описаны в термах блоков а не предложений как в языках C или Pascal. Поэтому необходимо всегда использовать круглые скобки для обозначения блока.
if ( EXPR ) BLOCK – Вычисляется логическое выражение EXPR и если true блок выполняется.
Пример:
$var =1;
if ($var == 1)
{ print $var,"\n";
}
Результат: 1
if ( EXPR ) BLOCK else BLOCK2– Если EXPR = true выполняется BLOCK иначе BLOCK2.
Пример:
$var =2;
if ($var == 1)
{ print «\$var = 1\n»;
}
else
{ print «\$var не равно 1\n»;
}
Результат: $var не равно 1
if ( EXPR1 ) BLOCK1 elsif ( EXPR2 ) BLOCK2 ... else BLOCK – Если EXPR1 = true выполняется BLOCK1иначе если EXPR2 = true выполняется BLOCK2иначе ... иначе BLOCK.
Пример :
$var = 1;
if ($var == 0)
{ print «\$var = 0\n»;
}
elsif ($var == 1)
{ print «\$var = 1\n»;
}
else
{ print «Не известное \$var\n»;
}
Результат: $var = 1
Цикл whileвыполняет BLOCKдо тех пор пока EXPR = true . Метка LABELне обязательна и состоит из идентификатора завершающегося символом ':'. Метка необходима при использовании внутри блока цикла управляющих операторов next , last и redo . Если метка все же отсутсвует то эти операторы ссылаются к началу ближайшего цикла.
Блок после continueвыполняется всегда перед тем как вычисляется логическое выражение EXPR . Это подобно EXPR3 в предлжении forпоэтому в этом блоке удобно изменять счетчики и флаги цикла даже если применяестя оператор next.
next – подобен continue в С. Переходит к началу текущего цикла т.е. повторяет итерацию.
Пример:
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
next M1 if $i < 3; # Переходим в начало если $i < 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue
{
print "$i "; # Печатаем $i
}
Результат: 1 2 4 6
last – подобен оператору break в языке С. Немедленно прерывает цикл. Блок continueпропускается.
Пример:
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
last M1 if $i > 3; # Выход из цикла если $i > 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue {
print "$i "; # Печатаем $i
}
Результат: 2 4
redo – начать новый цикл не вычисляя EXPR и не выполняя continueблок.
Пример:
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
redo M1 if $i == 3; # Далее пропустить для $i = 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue {
print "$i "; # Печатаем $i
}
Результат: 2 5 7
LABEL for ( EXPR1 ; EXPR2 ; EXPR3 ) BLOCK
Оператор forполностью аналогичен оператору forв С. В перед началом цикла выполняется EXPR1 , если EXPR2 = true выполняется блок, затем выполняется EXPR3 .
Пример:
for ($i = 2; $i < 5; ++$i)
{
print $i, " ";
}
print «\nПосле цикла i = $i\n»;
Результат:
2 3 4
После цикла i = 5
LABEL foreach VAR ( LIST ) BLOCK
Переменной VAR присваивается поочередно каждый элемент списка LIST и выполняется блок. Если VARопущенно то элементы присваиваются встроеной переменной $_. Если в теле блока изменять значение VARто это вызовет изменение и элементов списка т.к. VARфактически указывает на текущий элемент списка.
Читать дальшеИнтервал:
Закладка: