La función de log() en Perl

En el lenguaje de programación Perl tiene integrada la función de log().

La función de log() devuelve el logaritmo natural de un número especificado.

He aquí un ejemplo:

▶ Run
#!/usr/bin/perl

print log(10);

El programa mostrará en pantalla 2.30258509299405.

Los argumentos

En caso de que la función de log() no se transfieren a ningún argumento, la función trabaja con дефолтной variable $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

Uso estándar de la función de log() es el de pasar un argumento.

Si para pasar a la función log() más de un argumento, lo que se producirá un error y la ejecución del código se detiene.

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

Al intentar calcular el logaritmo natural de cero error:

▶ Run
#!/usr/bin/perl

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

El valor devuelto

La función de log() siempre devuelve el número.

El uso de otros motivos

La función de log() devuelve el logaritmo natural, es decir, el logaritmo de base e. Si desea calcular el logaritmo de la otra base, se puede escribir función:

▶ 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

La documentación oficial

He aquí el resultado del 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

Otros articulos