4

私はperlに非常に慣れていないので、しばらく検索しましたが、それでも答えが得られます。ハッシュ テーブルから最初の 100 ペアを取得したいのですが、その方法がわかりません。ハッシュ テーブルから各ペアを取得するには、次のようにします。

foreach my $term (keys %hashtable)
{
    do something regarding $hashtable{$term} here
}

しかし、そこから最初の 100 ペアを取得するにはどうすればよいでしょうか。どうもありがとう!

4

3 に答える 3

8

別の方法:

my %hash100 = (%hashtable)[0..199];
while ( my ($key, $value) = each %hash100 ) {
    ...
}

また:

for my $key ( (keys %hashtable)[0..99] ) {
    my $value = $hashtable{$key};
    ...
}
于 2012-10-28T23:09:53.310 に答える
7

ハッシュには特定の順序がないため、ハッシュの最初の 100ペアのようなものはないことに注意してください。

オフバイワンエラーからあなたを守るべき別の解決策:

for my $i (1 .. 100) {
    my ($key, $value) = each %hashtable;
    print "$key => $value\n";
}
于 2012-10-28T23:04:19.077 に答える
0

私もPerlは初めてで、もっとエレガントな解決策があるかもしれませんが、次のことができます:

my $i = 0;
foreach my $term (keys %hashtable) {
    ...
    do something regarding $hashtable{$term} here
    ...

    last if ($i++) == 100;    
}
于 2012-10-28T22:56:32.243 に答える