Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Выражения и операторы

После того как вы познакомились со скалярными типами данных, можно попробовать сделать что-то полезное на Perl. Программа Perl - набор выражений и операторов, выполняемых последовательно от начала и до конца, если, конечно, вы не изменяете ход программы с помощью специальных операторов, описанных на 3-м занятии, "Управление процессом выполнения программы". Пример готовой программы на Perl приведен в листинге 2.1.

стг1. jfpMbi на Perl .

1 !/usr/bin/perl -w $radins=50;

2:3 4:

5 9MSradius *. 2);

Проведем анализ программы.

• Строка 1. Как вы помните, в этой строке указывается путь к интерпретатору Perl. Ключ -w говорит о том, что нужно выводить все предупреждения.

• Строка 3. В этой строке выполняется оператор присваивания. Скалярной переменной 5radius присваивается число 50.

• Строка 5 этой строке также выполняется оператор присваивания. В правой части оператора присваивания находится выражение. Выражение содержит скалярную переменную dius, операторы * и ** (ниже описано их действие) и числовой скаляр 2. Переменной $агеа присваивается вычисленное значение выражения.

• Строка 6. В этой строке распечатывается результат вычислений, находящийся в переменной $aiea.

это набор операторов, имеющих значение. Например, 2 - допустимое выражение, как и 54*$r, "Java", sin($pi*8) и $t=6. Значения выражений вычисляются в ходе выполнения программы. Вначале программа вычисляет значения функций, операторов и скалярных констант, составляющих выражение, а затем - результирующее значение. Выражения можно использовать в операторах присваивания, в других выражениях или в операторах Peri.

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

Как было показано в листинге 2.1, для присваивания используется оператор присваивания =. Этот оператор помещает значение выражения, находящегося в правой части, в переменную, указанную в левой части. Например:

Stitle="yHeceHHHe ветром"; $pi=3.14159;

Оператор, находящийся в правой части, должен иметь определенное значение, которое можно присвоить переменной, т.е. правая часть оператора присваивания должна являться выражением. Сама по себе операция присваивания также является выражением,

38 Ч1ь I. :в Perl



значение которого указывается в правой части оператора присваивания. Это означает, что в приведенной ниже строке кода переменным $а, $Ь и $с присваивается значение 42:

$а=$Ь=$с2;

В этой строке переменной $с присваивается значение 42, затеЬ присваивается значение выражения $с=42 (равное 42). Переменной $а присваивается - значение выражения $ь=42. Переменная, которой нрисвоено значение, может иснользоваться в нра-вой части оператора присваивания, как показано ниже:

$а=89*$а; Scount=$count+l;

Правая часть выражения онератора присваивания вычисляется с использованием старого значения переменной $а или ?count. Оператор присваивания во второй строке имеет специальное название в Perl - инкремент. Мы еще остановимся на таких операторах подробнее.

Числовые операторы

У Perl имеется несколько операторов, которые предназначены для использования в числовых выражениях. Некоторые из них вам уже встречались, а с остальными мы сейчас познакомимся. Первой разновидностью уже знакомых вам операторов являются арифметические операторы. В табл. 2.3 приведен их список.

Таблица 2.3. Арифметические операпоры

Пример

Название оператора

Значение выражения

5 + $t

Сложение

Сумма 5 и $t

- $х

Вычитание

Разница между $у и $х

$е * $pi

Умножение

Произведение $е на $pi

$f / б

Деление

Частное от деления $f на 6

24 % 5

Остаток от деления

Остаток от деления 24 на 5 (4)

4 ** 2

Возведение в степень

4 в квадрате

Арифметические операторы выполняются в порядке приоритетов, принятых в математике: сначала возведение в степень, затем умножение, деление, вычисление остатка от деления и только затем сложение и вычитание. Если вы не уверены; в каком порядке будут выполняться операции в вашем выражении, используйте скобки. В - выражениях с вложенными скобками вначале вычисляются элементы выражения во внутренних скобках:

5*6+9; ♦ Значение 39

5*(6+9); I Значеже 75 5+{6*(4-3)); I Значеьме 11

Строковые операторы

Perl может оперировать не только числами, но и строками. Первым строковым оператором, который мы рассмотрим, является оператор конкатенации (.) • Этот оператор берет строку, находящуюся слева от него, и строку справа и возвращает строку, объединяющую предыдущие две, например:



5а="Прнвет, мой Свет!"; Sb=" Как я рад тебя видеть"; $с=$а . Sb;

В этом примере переменные $а и $Ь имеют простые строковые значения. В последней строке переменной $с присваивается значение Привет, мой Свет! Как я рад тебя

видеть, при этом значения переменных $а и $Ь не изменяются.

Конкатенацию строк можно выполнить и другим способом. Раньше мы уже говорили,

что внутри строк, заключенных в двойные кавычки, Perl "выискивает" имена переменных. Найденные переменные интерпретируются. Это означает, что имя переменной внутри строки в двойных кавычках заменяется реальным значением этой переменной, например:

Siiame="JlxoH";

print "Привет,

В этом примере Perl ищет в строке в двойных кавычках имена переменных, находит имя $name и подставляет вместо него строку Джон. Этот процесс называется интер-претациеи значения переменных. Для того чтобы переменные не интерпретировались, нужно заключить строку в одинарные кавычки (тогда Perl вообще никак не будет анализировать эту строку) или поставить обратную косую черту перед идентификатором имени переменной, например:

Sname=*llingo*;

print Я использую переменную ; I Не будет печатать слово "Ringo"

print "Я использую перемеппую \$name"; # Также пе будет печатать слово "Ringo"

Оба оператора print из предыдущего примера напечатают строку Я использую переменную $name, при этом переменная Sname не будет интерпретирована. Итак, оператор конкатенации можно заменить строками в двойных кавычках следующим образом:

Sfruitl="H6noM"; $fruit2="KiiyiiM"; $bowl="$fruitl $fruit2";

Там, где Perl не может четко выделить имя переменной из остальной части строки,

заключите имя переменной в фигурные скобки {}. Подобный прием позволяет Perl легко определить имя переменной, например:

Sname="Thurs";

print "I went to the fair on ${date}day";

Без этих скобок непонятно, какую переменную должен интерполировать Perl - $date или $dateday. Фигурные скобки однозначно указывают, что $date.

Следующим строковым оператором является оператор повторения х. В операторе х указываются два аргумента - строка, которую необходимо повторить, и число повторений. Например:

$line="-" х 70;

В предыдущем примере символповторяется 70 раз оператором х. Результат сохраняется в переменной $line.

Другие операторы

В Perl существует такое огромное количество операторов, что в этой книге просто не хватит места, чтобы их все подробно описать. Оставшаяся часть этого занятия посвящена часто используемым операторам и функциям Perl.

40 Ч1ь I. ;в



0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122