Funzione log() in Perl

Nel linguaggio di programmazione Perl ci sono built-in funzione di log().

Funzione log() restituisce il logaritmo naturale di un numero specificato.

Ecco un esempio:

▶ Run
#!/usr/bin/perl

print log(10);

Il programma visualizzerà 2.30258509299405.

Argomenti

Nel caso in cui la funzione log() non trasmessi gli argomenti, la funzione lavora con di default della variabile $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

L'uso standard di funzioni log() è darle un argomento.

Se trasferire la funzione log() è più di un argomento, quello è un errore e l'esecuzione di codice verrà interrotta.

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

Quando si tenta di calcolare il logaritmo naturale da zero sarebbe un errore:

▶ Run
#!/usr/bin/perl

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

Il valore restituito

Funzione log() restituisce sempre il numero.

L'uso di altri motivi

Funzione log() restituisce il logaritmo naturale, cioè il logaritmo in base e. Se si desidera calcolare il logaritmo in un'altra base, è possibile scrivere la propria funzione:

▶ 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 documentazione ufficiale di

Ecco l'output 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.

Temi correlati

Altri articoli