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

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

Вот пример:

▶ Run
#!/usr/bin/perl

print( sqrt(2) );

Эта программа выведет на экран число 1.4142135623731.

Аргументы

my $value = sqrt($number);

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

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

▶ Run
#!/usr/bin/perl

$_ = 4;

print( sqrt() );

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

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

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

Если в программе не используется Perl модуль Math::Complex, то результат работы функции sqrt() — это всегда число.

А если в программе есть модуль Math::Complex, то то результат может быть строка последний символ в которой будет буква 'i', например '1.73205080756888i'.

Работа в случае отрицательного значения аргумента

Если в программе не используется Perl модуль Math::Complex и функции sqrt() передано отрицательное значение, то будет брошено исключение и работа программы завершится:

▶ Run
#!/usr/bin/perl

print( sqrt(-9) );
Can't take sqrt of -9 at script.pl line 3.

При использовании модуля Math::Complex функция sqrt() работает и с отрицательными значениями. Вот пример программы которая выведет на экран текст 3i.

▶ Run
#!/usr/bin/perl

use Math::Complex;

print( sqrt(-9) );

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

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

       sqrt EXPR
       sqrt    Return the positive square root of EXPR.  If EXPR is omitted,
               uses $_.  Works only for non-negative operands unless you've
               loaded the "Math::Complex" module.

                   use Math::Complex;
                   print sqrt(-4);    # prints 2i

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

Комментарии