Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
perl.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
388.1 Кб
Скачать

Операторы perl

В то время как типы данных и переменных языка Perl значительно отличаются от соответствующих типов языка С, операторы ивыражения Per] должны вам показаться гораздо более знакомыми. Всеоператоры С присутствуют в языке Perl, за исключением операторыприведения типов (type), операторы обращения к содержимому указателя *ptr и оператора выбора члена структуры var.member илиvar->member. Кроме того, в языке Perl реализовано много новыхоператоров для использования в таких операциях как сравнение иобработка строк.

Арифметические операторы

Арифметические операторы действуют на числовые значения, иих результатом является число. Если выражение включает строковыеоперанды, то Perl конвертирует строковые значения в числовые перед тем, как оценить выражение. Perl выполняет преобразованиестрок в числа подобно тому, как это делает функция atof()языка Св библиотеки времени выполнения. В настоящее время Perl поддерживает следующие арифметические операторы: ? + сложение ? - вычитание или изменение знака ? * умножение ? / деление (только для чисел с плавающей запятой) ? % взятие по модулю (только для целочисленных значений)

Рассмотрим примеры следующих арифметических операций языка Perl:

$x = 2.5;

$y = 3;

print ($x + 2*$y); # выведет 8.5

print (7 / $y); # выведет 2.3333333

print int (7 / $y); # выведет 2

print (7 % $y); # выведет 1

print (7.5 % $y); # выведет 1

Примечание: В языке Perl оператор деления всегда имеет результатом 4ucw с плавающей точкой, а результатом взятия одного числа помодулю другого является целое число и причем предварительно обаоперанда преобразуются к целому типу.

Рассмотрим следующую операцию взятия по модулю:

print (7.9 % 3.6); # выведет 1 то же (7 % 3) = 1

Perl также поддерживает операторы инкремента и декремента:? ++ декремент в префиксной или постфиксной форме? - инкремент в префиксной или постфиксной формеРассмотрим примеры операций инкремента и декремента:

$x = 4;

++$x;

print $x; # выведет 5

$y = $x-; # уменьшит x после присвоения y значения x

print "$y $x" # выведет 5 4

Наконец, Perl обеспечивает арифметический оператор для возведения в степень (**). Рассмотрим следующие примеры использования операции возведения в степень:

$x = 2 ** 3; # результат 8

$x = 2 ** 0.5; # квадратный корень из 2

$x = -2 ** -3; # 1/(-2 в кубе), результат -1/8 (-0.125)

Побитовые операторы

Побитовые операторы воздействуют на бинарное представлениецелых чисел и имеют целочисленный результат. Если операндом является строка или дробное число, Perl предварительно преобразуетего в целое число, обрабатывает операнд, используя 32-битноепредставление. Все побитовые операторы С представлены в языкеPerl: ? | побитовое ИЛИ ? & побитовое И ? ^ побитовое исключающее ИЛИ ? ~ побитовая инверсия ? << сдвиг влево ? >> сдвиг вправо

Рассмотрим следующие примеры побитовых операций:

$x = 5; # 101 в двоичном

$y = 3; # 011 в двоичном

print $x | $y; # 7 (111)

print $x & $y; # 1 (001)

print $x ^ $y # 6 (110)

print $x & ~1; # 4 (100)

print $x << 2 # 20 (10100)

print $x >> 1 # 2 (10)

Так же как в С, поведение операторов сдвига вправо зависит отреализации язы ка в случае, если операнд является отрицательным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]