Come conoscere il numero di coppie di elementi in Perl хеше

Il compito. In programma nel linguaggio di programmazione Perl un hash. Bisogno di capire quante coppie i valori in esso si trova.

Ad esempio, per questo hash bisogno di ottenere il valore di 1:

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

E per tale hash bisogno di ottenere un valore di 3:

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

La decisione

Standard soluzione a questo problema è prima di ottenere tutte le chiavi hash con l'aiuto di keys, e poi contare il numero di chiavi con l'aiuto di scalare contesto. Ecco lo script per intero:

▶ Run
#!/usr/bin/perl

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

my $number = scalar keys %h;

print $number;

Lo script visualizza il numero di 2. scalar keys %h è lo stesso che e scalar(keys(%h)).

Questa soluzione funziona su tutte le versioni di Perl. E spesso è proprio questa soluzione è la migliore.

La decisione nelle nuove versioni di Perl

A partire dalla versione di Perl 5.26 numero di coppie di valori in хеше si può ottenere solo con l'aiuto di scalar %h.

E grazie di questo c'è консистентность nel frattempo come ottenere il numero di elementi nella matrice scalar @arr e come ottenere il numero di coppie di valori in хеше scalar %h. Dispiace che questo comportamento non è stato creato inizialmente.

Se utilizzare scalar %h in Perl prima di 5.26, il risultato di questa operazione sarà strana la frazione di specie 1/8. (la spiegazione di cosa significa questa frazione). A causa di questo, più un'opzione affidabile per capire il numero di coppie in хеше rimane ancora l'opzione scalar keys %h.

Temi correlati

Altri articoli