В то время как типы данных и переменных языка 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 оператор деления всегда имеет результатом число с плавающей точкой, а результатом взятия одного числа помодулю другого является целое число и причем предварительно оба операнда преобразуются к целому типу.
Рассмотрим следующую операцию взятия по модулю:
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)
1 2 3 4
8 8 8
| |