Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Спецификация языка Perl /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Синтаксис языка Perl - Программирование от RIN.RU
Синтаксис языка Perl

Программа на Perl-е состоит из последовательности команд. В отличие от типизированных языков Perl не требует объявления типов своих объектов. Все объекты, определенные в программе, до присваивания им какого-либо значения по умолчанию принимают значение ``0"". Последовательность команд исполняется сразу, в отличие от sed и awk, где исполняется последовательно каждая строка.


Комментарии выделяются знаком #, и вся строка следующая за этим знаком будет рассматриваться как комментарий. Если вы написали подпрограмму, то ее можно вызывать только ниже по тексту программы.


Блоком называется последовательность операторов, логически составляющая единое целое в теле программы, как правило, блоки заключаются в фигурные скобки. Каждая команда отделяется от других точкой с запятой. Точка с запятой не обязательна, только если оператор является последним в блоке.


Простые операторы


Последовательность простых операторов может следовать за отдельным модификатором. В Perl-е простыми модификаторами являются:


if (EXPR)
unless (EXPR)
while (EXPR)
until (EXPR)


В операторах while и until проверка условия происходит перед выполнением тела блока, за исключением одного случая, когда используется do-оператор:




do {
$_ = ;
...
} until $_ eq ".\n";


в котором проверка условия происходит после выполнения блока. Операторы цикла, которые будут описаны далее, не будут работать в этой конструкции, так как отсутствует метка цикла.


Составные операторы


if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK eslif (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 все определяется в терминах блоков, а не операторов: то есть фигурные скобки являются обязательными. Метка состоит из идентификатора и двоеточия. Она ставится в начале цикла и служит указателем для операторов цикла next, last и redo (их описание смотри ниже). Если это continue блок, то он выполняется перед тем, как условие будет проверено снова, как третья часть for оператора в C. Правильность условия может зависеть от результатов выполнения блока, например:


$i = 1;
while ($i < 10){
...
} continue {
$i++;
}
или, что тоже самое:
for ($i = 1; $i < 10; $i++;) {
...
}


Foreach цикл присваивает переменной по очереди каждое значение из списка и выполняет над ней все команды из блока. Переменная является локальной и существует только в пределах данного цикла. Если список является массивом, то его можно изменять в цикле, посредством операций над переменной. Если переменная опускается, то по умолчанию в качестве нее используется $_.
foreach \$elem(@elements) \{\$elem = \$elem * 2;\}


-- цикл по всему содержимому массива @items. Пример:


for ((1,2,3,4,5,6,7,8,9,10,"boom")) {
print $_,"\n"; sleep(1); }
for (1..15) { print "Merry Christmas\n"; }
foreach $item (split(/[\/\*\\n]/,$ENV{"TERMCAP"})) {
print "Item: $item\n"; }


Блок семантически эквивалентен циклу, который исполняется один раз. Поэтому в него можно включать операторы контроля цикла, чтобы выйти из него или запустить его еще раз.



 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Cтруктуры данных

Операторы языка Perl

Ссылки

Регулярные выражения

Зарезервированные переменные

Встроенные функции

Подпрограммы и модули

Объектная ориентация

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь