Язык программирования Perl | страница 20




> ++$done_count; # увеличиваем счетчик обработанных строк $left_count--; # уменьшаем счетчик оставшихся строк


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


> $f = 2.5; # начальное значение переменной $f $f++; # теперь в $f стало 3.5


Операции автоинкремента и автодекремента более естественны, чем используемые в других языках эквивалентные выражения наподобие $n = $n + 1 (которые так шокируют математиков). К тому же они обычно и более эффективно реализованы.

В Perl есть операции унарный минус и унарный плюс, применяемые к числовым и строковым значениям. Например, если в переменной $n содержится число, в $s - строка, а в $x - любое значение, то унарные знаки подействуют так:


> - унарный минус ($n = -$n; сменит знак числа в $n на противоположный) - унарный минус ($s = -$s; добавит перед строкой в $s символ '-') + унарный плюс ($x = +$x; не изменит значения любой переменной)


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

К унарным операциям также относится операция вызова функции. Многие встроенные функции языка Perl, которые будут рассмотрены в последующих лекциях, в действительности являются именованными унарными операциями. Они могут записываться в традиционном для функций виде с круглыми скобками или как унарные операции без скобок: sin($x) или sin $x. В таблице 3.1 приведены математические функции и встроенные функции работы со временем.

Таблица 3.1.
ФункцияОписаниеПример использованияРезультат (округленный)
abs $xабсолютное значение $xabs -2525
atan2 $y, $xарктангенс y/x в интервале от -р до + рatan2 25,51.37340077
cos $xкосинус $xcos 250.99120281
exp $xвозвращает e в степени $xexp 0.251.28402542
int $xцелая часть от $xint 25.2525
log $xнатуральный логарифм $xlog 253.21887582
randслучайное дробное число от 0 до 1rand0.97265625
rand $xслучайное число от 0 до $xrand 2523.0430603
srandначинает новую случайную последовательность для randsrand1
sin $xсинус $xsin 25-0.1323518
sqrt $xквадратный корень из $xsqrt 255
timeчисло секунд с начала отсчета (обычно с 01.01.1970)time1139738006
localtimeтекущая или указанная дата и времяlocaltimeSun Feb 12 14:55:25 2006

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