ハッシュがある場合:
%hash = ("Dog",1,"Cat",2,"Mouse",3,"Fly",4);
このハッシュの最初のX要素を抽出するにはどうすればよいですか。たとえば、最初の3つの要素が必要な場合、%newhashには( "Dog"、1、 "Cat"、2、 "Mouse"、3)が含まれます。
私は大きなハッシュ(〜8000キー)で作業しています。
「このハッシュの最初のX要素」は何の意味もありません。最初の3つの要素を数値順に並べますか?
my %hash = ( 'Dog' => 1, 'Cat' => 2, 'Mouse' => 3, 'Fly' => 4 );
my @hashkeys = sort { $hash{$a} <=> $hash{$b} } keys %hash;
splice(@hashkeys, 3);
my %newhash;
@newhash{@hashkeys} = @hash{@hashkeys};
次のようなものを使用することをお勧めします。
my %hash = ("Dog",1,"Cat",2,"Mouse",3,"Fly",4);
for ( (sort keys %hash)[0..2] ) {
say $hash{$_};
}
1番目の配列が必要です。
my %hash = ("Dog" => 1,"Cat"=>2,"Mouse"=>3,"Fly"=>4);
my @array;
foreach $value (sort {$hash{$a} <=> $hash{$b} }
keys %hash)
{
push(@array,{$value=>$hash{$value}});
}
#get range:
my @part=@array[0..2];
print part of result;
print $part[0]{'Cat'}."\n";