Введение в Perl - [3]
-x директория
Режим запуска скрипта вставленного в файл содержащий обычный текст. Началом скрипта считаестся строка с символами '#!' в начале и содержащия слово perl. Концом – строка с '__END__'
Указанная директория становится текущей в момент исполнения. Если необходимо читать последующие строки то это лучше делать через указатель файла DATA.
Синтаксис
Перл программа (скрипт) состоит из последовательности деклараций и предложений.
Единственно что должно быть обязательно декларировано это форматы отчетов и подпрограммы (функции). Все не объявленные переменные, массивы, имеют значение 0 или null.
Декларации (объявления).
Перл имеет свободный формат. Комментарии начинаются с символа '#' и продолжаются до конца строки.
Декларации могут использоваться в любом месте программы так же как и предложения (statements) но действуют они только в фазе компиляции программы. Обычно их помещают или в начале или в конце программы.
Декларация подпрограмм позволяет использовать имя подпрограммы как списковый оператор начиная с момента декларирования.
Пример:
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) BLOCKelseBLOCK2 – Если 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 пропускается.
Пример:
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.