A função log() em Perl

Na linguagem de programação Perl possui a função de log().

A função log() retorna o logaritmo natural de um número especificado.

Aqui está um exemplo:

▶ Run
#!/usr/bin/perl

print log(10);

O programa exibirá 2.30258509299405.

Argumentos

No caso de uma função log() não passar nenhum argumento, a função funciona com дефолтной variável $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

O padrão de uso da função log() é passar um argumento.

Se passar uma função log() de mais de um argumento, o erro e a execução de código é interrompido.

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

Quando você tenta calcular o logaritmo natural de zero de erro:

▶ Run
#!/usr/bin/perl

log(0);
Can't take log of 0 at script.pl line 3.

O valor de retorno

A função log() sempre retorna o número.

O uso de outras bases

A função log() retorna o logaritmo natural, т. е. o logaritmo de base e. Se necessário calcular o logaritmo de outra causa, então, poderá escrever função:

▶ Run
#!/usr/bin/perl

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

sub log_base {
    my ($base, $n) = @_;

    return log($n)/log($base);
};

say log_base(2, 4); # 2
say log_base(2, 256); # 8
say log_base(10, 1000); # 3

A documentação oficial

Aqui está a saída do comando perldoc -f log:

    log EXPR
    log     Returns the natural logarithm (base *e*) of EXPR. If EXPR is
            omitted, returns the log of $_. To get the log of another base,
            use basic algebra: The base-N log of a number is equal to the
            natural log of that number divided by the natural log of N. For
            example:

                sub log10 {
                    my $n = shift;
                    return log($n)/log(10);
                }

            See also "exp" for the inverse operation.

Temas relacionados

Outros artigos