Анимация
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

Унарные операторы

До сих пор все встречавшиеся вам операторы имели по два аргумента. Для деления 6/3 нужен числитель б и знаменатель 3, для умножения 5*2 нужны множители 5 и 2 и т.д. Другой тип операторов - операторы с одним аргументом (операндом). Скорее всего, вы уже знакомы с одним представителем операторов такого рода - унарным минусом (-). Унарный минус изменяет знак своего аргумента, например:

-(-5)

I Шесть

f Mffijc шесть

i Пять, минус

на минус дает

В отличие от унарного минуса, большинству операторов назначены имена.

Операнды именованных унарных операторов заключать в скобки необязательно (в

табл. 2.4 они приведены лишь для удобства). Поскольку именованные операторы в Perl напоминают функции, то их операнды иногда называют аргументами, т.е. термином, принятым для параметров функций Perl.

Краткий список именованных операторов приведен в табл. 2.4.

Оператор

Пример использования

Результат

iJlt(5.6234)

Возвращает целую часть аргумента (5)

length("nose"!

Возвращает длину строки-аргумента (4)

]£((TyE TDD")

Переводит все символы строки аргумента в нижний регистр ("те too")

i]C("hal 90QO")

Действие, обратное действию предыдущего оператора ("HAL 9000")

cos(50)

КосинуО радиан (.964966).

rard

rand(5)

Возвращается случайное число в диапазоне от 0 до указанного в аргументе; если аргумент отсутствует- возвращается случайное число в диапазоне от 0 до 1

Полный список именованных операторов приведен в документации На 1-

м занятии, "Начало работы с Perl", рассказывалось о том, как получить доступ к разделам документации с помошью утилиты perldoc, которая входит в поставку Perl. Полный список операторов находится на страницах руководства perlop и На

последующих занятиях, по мере необходимости, будут представлены и некоторые другие операторы.

Инкремент и декремент

В разделе "Числовые операторы" мы уже говорили о специальном типе операторов присваивания, называемом инкрементом, выглядевшем тогда так:

$counter=$counter+l;

Инкремент обычно используется для подсчета чего-либо, например количества встретившихся записей или для генерации последовательных номеров (например, нумерации элементов списка). Вы можете в этих целях использовать специальный опе-



ратор, называемый оператором автоинкремента (++). Этот оператор прибавляет к операнду единицу:

$counter++;

После выполнения этой строки кода значение переменное nter увеличивается

на единицу.

В Perl есть оператор для уменьшения значения переменной, который, как вы уже могли сами догадаться, называется оператором автодекремента (--). Автодекремент используется точно так же, как и автоинкремент:

Scountdown=10;

$coantdpwn~; f Значение переменной становится нын 9

Перед тем как завершить описание этих операторов, следует упомянуть еше об одном любопытном свойстве автоинкремента. Речь идет о применении этого оператора к строке алфавитно-цифровых символов, что приводит к очень интересному результату! Данная операция влияет на последний (самый правый) символ строки - его значение увеличивается на 1, при этом буквенный символ заменяется следующим символом алфавита. Ниже приведены примеры действия оператора автоинкремента на строки.

?а="99Э";

$а++;

print $a; \ как н следовало ожидать, напечатает 1000.

?а="с9-;

$а++;

print $а; \ напечатает dO. 9+1=10, с заменяется сле/ющ \ сколом алфавита d.

$a="zzz"; $а++;

print $a; t напечатает aaaa.


Оператор автодекремента не выполняет подобных действий. П

УГЛОВОЙ оператор

Угловой оператор (о), иногда из-за своей формы называемый "бубновым", прежде всего, используется для чтения и записи файлов (подробнее об этом речь пойдет на 5-м занятии, "Работа с файлами"). Однако, чтобы сделать примеры более интересными, мы начнем его использовать раньше, и к 5-му занятию он уже будет нам хорошо знаком.

А пока мы будем использовать простейшую форму углового оператора: <STDIN>. Эта конструкция сообщает Perl, что строка должна быть считана со стандартного устройства ввода - обычно с клавиатуры. Таким образом, оператор <STDIN> возвращает строку, введенную с клавиатуры, например:

print "Какой у вас размер обуви? Ssize=<STDIN>,*

print "Ваш размер увв }Спасибо за внимание";



После выполнения этого кода (предположим, что в качестве размера обуви вы указали число 45) на экран будет выведено следующее:

Какой у вас размер обуви? 45 Ваш размер обуви - 45 Спасибо- за внимание

Оператор <8ШМ> читает вводимые с клавиатуры символы до тех пор, пока пользователь не нажмет клавишу tcr>. Затем введенная строка помещается в переменную Ssize. Строка текста, возвращаемая оператором <[DIN>, содержит символ перевода строки, введеппый пользователем при пажатии клавиши <Enter>. Обычно не желательно, чтобы в конце введенной строки находился символ перевода строки, т.е. требуемая строка должна содержать лишь текст. Для удаления символа перевода строки можно воспользоваться оператором chomp:

print "Какой у вас размер обуви? "; 5size=<STDIN>;

chomp $size;

print "Ваш размер обуви - Ssize. Спасибо за вниманиеХп";

Оператор отр удаляет в строке-аргументе завершающий символ перевода строки. Он также возвращает количество удаленных символов - обычно это 1, но иногда О, если ничего не удалено.

Другие операторы присваивания

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

переменная гтор= выражение

Эта строка равносильна следующей:

переменнйя=перемеивая оператор выражение

Использование подобнгх операторов обычно не сделает вашу программу более читабельной, но сделает ее короче. Согласно вышеописанному правилу, оператор

$а=$а+3;

можно сократить до $а+=3;

А вот еще несколько примеров:

$line.=" - это конец строки"; I Фраза дописывается к $Ипе; $у*=$х t То же, что и $у=$у*$х

Sr*=67 I CciaiCK or депшия Sr на 67 тувщепся в Sr

Несколько слов о строках и числах

Perl позволяет использовать в выражениях как строки, так и числа. При этом, в зависимости от ситуации, Perl выполняет автоматическое преобразование чисел в строковое представление и наоборот. Ниже приведено несколько правил, которыми руководствуется

2-й час. зоше блоки Perl: ла и оки 43



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