Wie finde ich die maximale Anzahl der array in Perl

Aufgabe. Im Perl-Programm ein array @arr (die ersten drei Buchstaben von dem Wort "array"). Muss eine maximale Anzahl, die in diesem array.

Der beste Weg für die Lösung dieser Aufgabe ist die Verwendung der Funktion max aus der Bibliothek List::Util. Bibliothek List::Util geht zusammen mit Perl, so dass, wenn Sie eine Perl, dann ist diese Bibliothek sofort verfügbar, zusätzlich nichts installieren müssen.

Hier ist ein Beispiel-Programm, das sucht und zeigt die maximale Anzahl der in dem array enthaltenen zahlen:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr = (1, 2, -100, 8, 0);

print max(@arr);

Das Programm zeigt die Zahl 8. (Führen Sie diesen Code im Browser ).

Bei der Verbindung der Bibliothek haben wir herausgearbeitet, dass benutzen wir die Funktion max: use List::Util qw(max);. Wenn Sie nur die Bibliothek verbinden use List::Util;, wird das Programm einen Fehler Undefined subroutine &main::max called at script.pl line 7..

Im array kein Element

Wenn im array keine Elemente, dann max zurück undef. Hier ist ein Beispielprogramm, die Berücksichtigung solcher Fall:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr;

my $max = max(@arr);

if (defined $max) {
    print $max;
} else {
    print "Empty array";
}

In diesem Programm speichern wir das Ergebnis der Funktion max in die Variable, wenn das Ergebnis nicht undef, dann leiten Sie dieses Ergebnis, wenn undef, dann drucken Sie den Text auf dem Bildschirm.

Hier prüfen wir das Ergebnis der Funktion max, aber man könnte die Anzahl der Elemente im array und wenn die Anzahl der Elemente 0 ist, dann tun was zu tun ist im Falle eines leeren Arrays.

Die Arbeit in dem Fall, wenn im array eine Zeile

Beim arbeiten mit der Funktion max aus der Bibliothek List::Util gibt es eine Feinheit. Eigentlich max gibt nicht die maximale Anzahl von array und Element, dessen Darstellung als Zahl ist das Maximum.

Hier ist ein Beispiel. Das Ergebnis max(-100, 'ABC', -4) wird die Zeichenfolge 'ABC'. So ist aufgrund der Tatsache, dass der numerische Wert der Zeile 'ABC' ist null, null ist der größte Wert in diesem array, deshalb wird der m-Wert ist das Element mit dem größten numerischen Wert. In diesem Beispiel ist die Zeile 'ABC'.

Ein weiteres Beispiel. Das Ergebnis max(1, 7, '10W') wird die Zeile '10W'.

Die offizielle Dokumentation

Hier ist ein Ausschnitt der Ausgabe des Befehls perldoc List::Util  über die Funktion max:

  max
        my $num = max @list;

    Returns the entry in the list with the highest numerical value. If the
    list is empty then "undef" is returned.

        $foo = max 1..10                # 10
        $foo = max 3,9,12               # 12
        $foo = max @bar, @baz           # whatever

Andere Artikel