Funktion log() i Perl

I programmeringssproget Perl har en indbygget funktion log().

Funktion log() returnerer den naturlige logaritme til det angivne nummer.

Her er et eksempel:

▶ Run
#!/usr/bin/perl

print log(10);

Programmet vil vise 2.30258509299405.

Argumenter

Hvis funktionen log() ikke gives ingen argumenter, den fungerer med standard variable $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

Standard hjælp log() er at give det et enkelt argument.

Hvis overførslen funktion log() mere end ét argument, vil det være en fejl og kode vil blive stoppet.

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

Når du forsøger at beregne den naturlige logaritme af nul er en fejl:

▶ Run
#!/usr/bin/perl

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

Return værdi

Funktion log() altid returnerer et tal.

Brug af andre grunde

Funktion log() returnerer den naturlige logaritme, dvs logaritme base e. Hvis du ønsker at beregne den naturlige logaritme til en anden base, så kan du skrive funktion:

▶ 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

Officiel dokumentation

Her er outputtet af kommandoen 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.

Relaterede emner

Andre artikler