Wie eine Mindestanzahl array in Perl

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

Der beste Weg für die Lösung dieser Aufgabe ist die Verwendung der Funktion min 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 minimale Anzahl der in dem array enthaltenen zahlen:

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

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

print min(@arr);

Das Programm zeigt die Anzahl der -100. (Führen Sie diesen Code im Browser ).

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

Im array kein Element

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

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

my @arr;

my $min = min(@arr);

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

In diesem Programm speichern wir das Ergebnis der Funktion min 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 min, 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 min aus der Bibliothek List::Util gibt es eine Feinheit. Eigentlich min gibt nicht die minimale Anzahl von array und Element, dessen Darstellung in Form einer Zahl ist minimal.

Hier ist ein Beispiel. Das Ergebnis min(12, 'ABC', 44) wird die Zeichenfolge 'ABC'. So ist aufgrund der Tatsache, dass den numerischen Wert der Zeichenfolge 'ABC' ist null, null ist der kleinste Wert in diesem array. Das Ergebnis min ist ein Element der Zahlenwert minimal. In diesem Beispiel ist die Zeile 'ABC'.

Ein weiteres Beispiel. Das Ergebnis min(10, 7, '4H') wird die Zeichenfolge '4H'.

Die offizielle Dokumentation

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

  min
        my $num = min @list;

    Similar to "max" but returns the entry in the list with the lowest
    numerical value. If the list is empty then "undef" is returned.

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

Andere Artikel