Funktion log() in Perl

In der Programmiersprache Perl gibt es die eingebaute Funktion log().

Funktion log() gibt den natürlichen Logarithmus der angegebenen Zahl.

Hier ist ein Beispiel:

▶ Run
#!/usr/bin/perl

print log(10);

Das Programm zeigt das 2.30258509299405.

Argumente

Wenn die Funktion log() nicht übertragen, keine Argumente, wird die Funktion arbeitet mit дефолтной Variable $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

Standard-Funktion verwenden log() ist ein argument übergeben.

Wenn an die Funktion übergeben log() mehr als ein argument, dann wird der Fehler und die Codeausführung gestoppt wird.

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

Wenn Sie versuchen, berechnen Sie den natürlichen Logarithmus von null-Fehler:

▶ Run
#!/usr/bin/perl

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

Der Rückgabewert

Funktion log() immer eine Zahl zurück.

Die Verwendung anderer Basen

Funktion log() ergibt den natürlichen Logarithmus, d.h. den Logarithmus zur Basis e. Wenn Sie berechnen den Logarithmus zur anderen Basis, so kann man selbst schreiben 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

Die offizielle Dokumentation

Hier ist die Ausgabe des Befehls 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.

Verwandte Themen

Andere Artikel