Wie erfahre ich die Anzahl der Paare von Elementen in Perl хеше

Aufgabe. Im Programm in der Programmiersprache Perl ein Hash. Müssen Sie herausfinden, wie viele Paare Werte in ihm liegt.

Zum Beispiel, für das diese Hash-Wert den Wert 1:

my %h = (
    a => 'AAA',
);

Und für einen solchen Hash-Wert den Wert 3:

my %h = (
    a => 'AAA',
    b => 'BBB',
    c => 'CCC',
);

Lösung

Die Standardlösung dieser Aufgabe ist zunächst bekommen alle Schlüssel Hash-Wert mit Hilfe von keys, und dann die Anzahl der Schlüssel mit einem skalaren Kontext. Hier ist das gesamte Skript:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 'AAA',
    b => 'BBB',
);

my $number = scalar keys %h;

print $number;

Das Skript zeigt die Anzahl der 2. scalar keys %h ist das gleiche dass und scalar(keys(%h)).

Diese Lösung funktioniert auf allen Versionen von Perl. Und meistens genau diese Entscheidung ist die beste.

Lösung in neueren Versionen von Perl

Perl ab Version 5.26 Anzahl von Wertepaaren in хеше können Sie einfach mit Hilfe scalar %h.

Und Dank dieser Konsistenz erschien inzwischen als die Anzahl der Elemente im array scalar @arr und wie bekommt man die Anzahl der Wertepaare in хеше scalar %h. Sehr schade, dass ein solches Verhalten ursprünglich nicht geschaffen wurde.

Wenn Sie scalar %h in Perl früher als 5.26, dann ist das Ergebnis dieser Operation wird eine seltsame Art von Bruch 1/8. (Erklärung was bedeutet dieser Quotient). Aus diesem Grund zuverlässiger Option für die Klärung der Anzahl der Paare in хеше bleibt immer noch die Option scalar keys %h.

Verwandte Themen

Andere Artikel