Some parts of this page were machine translated.
Powered by Yandex.Translate
http://translate.yandex.com/
Opgave. I program i programmeringssproget Perl er hash. Du er nødt til at finde ud af, hvor mange par værdier i det.
Opgave. I program i programmeringssproget Perl er hash. Du er nødt til at finde ud af, hvor mange par værdier i det.
For eksempel, denne hash er nødvendigt at fastsætte, at 1:
my %h = (
a => 'AAA',
);
Og for sådan en hash, du har brug for at få værdien 3:
my %h = (
a => 'AAA',
b => 'BBB',
c => 'CCC',
);
Standard løsning på dette problem er, at først får alle tasterne af hash ved hjælp keys
, og derefter
for at tælle antallet af nøgler ved hjælp af skalar sammenhæng. Her er scriptet i sin helhed:
#!/usr/bin/perl
my %h = (
a => 'AAA',
b => 'BBB',
);
my $number = scalar keys %h;
print $number;
Scriptet vil vise antallet 2
. scalar keys %h
er den samme som scalar(keys(%h))
.
Denne løsning virker på alle versioner af Perl. Og ofte er denne beslutning, der er bedst.
Perl er 5,26 antallet af par af værdier i hash kan opnås blot ved hjælp af scalar %h
.
Og dette har resulteret i, at der er sammenhæng mellem, hvordan at få antallet af elementer i arrayet scalar @arr
og med hensyn til antallet af par af værdier i hash scalar %h
. Det er en skam, at denne adfærd ikke blev skabt i første omgang.
Hvis du bruger scalar %h
i Perl tidligere end 5,26, resultatet af denne operation er en mærkelig brøkdel af de arter, 1/8
.
(en forklaring på, hvad denne fraktion betyder).
På grund af dette en mere pålidelig løsning til at finde antallet af par i hash er stadig mulighed for scalar keys %h
.