Функция abs() в Perl

В языке программирования Perl есть встроенная функция abs(). Эта функция возвращает модуль от своего аргумента.

Вот пример:

▶ Run
#!/usr/bin/perl

print abs( -3.14159265358979 );

Эта программа выведет на экран 3.14159265358979.

Аргументы

my $abs_value = abs($value);

Если функции abs() передать один аргумент, то функция будет работать с ним.

Если не передать ни одного аргумента, то функция будет работать с дефолтной переменной $_. Вот пример (программа выведет число 8):

▶ Run
#!/usr/bin/perl

$_ = -8;

print abs();

Если функции abs() передать больше чем один аргумент, то будет ошибка:

Too many arguments for abs at script.pl line 3, near "2)"
Execution of script.pl aborted due to compilation errors.

В том случае если в функцию передана строка, то оно преобразуется к числу. Подробнее о том как Perl преобразует строки в числа.

Вот пример кода в котором функция abs() работает со строками:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

say abs('Hello');
say abs('-100asdf');
say abs(' -123JK');

Эта программа выведет на экран:

0
100
123
Argument "Hello" isn't numeric in abs at script.pl line 7.
Argument "-100asdf" isn't numeric in abs at script.pl line 8.
Argument " -123JK" isn't numeric in abs at script.pl line 9.

В том случае если в качестве аргумента использовать undef, то функция вернет число 0, но если в коде есть use warnings;, то будет выведено предупреждение Use of uninitialized value in abs at script.pl line 6..

Возвращаемое значение

Функция abs() всегда возвращает неотрицательное число.

Официальная документация

Вот вывод команды perldoc -f abs:

    abs VALUE
    abs     Returns the absolute value of its argument. If VALUE is omitted,
            uses $_.

Связанные темы

Другие статьи