ハッシュ値から最小値を選択できるスクリプトがあります。
use strict;
use warnings;
use Data::Dumper;
use List::Util qw(min);
my @array = qw/50 51 52 53 54/;
my $time = 1596561300;
my %hash;
foreach my $element(@array){
$hash{$time} = $element;
$time += 6; #based on some condition incrementing the time to 6s
}
print Dumper(\%hash);
my $min = min values %hash;
print "min:$min\n";
ここでは50
、ハッシュ値のすべての値から最小値を取得できます。しかし、最小値に対応するハッシュキーを取得するにはどうすればよいでしょうか1596561300
。
キーから、値を取得できます。したがって、関連付けられた値が最小のキーが必要です。
min LIST
と書くことができるreduce { $a <= $b ? $a : $b } LIST
ので、
use List::Util qw( reduce );
my $key = reduce { $hash{$a} <= $hash{$b} ? $a : $b } keys %hash;
my $val = $hash{$key};
または
my ($key) = keys(%hash);
my $val = $hash{$key};
for (keys(%hash)) {
if ($hash{$_} < $val) {
$key = $_;
$val = $hash{$val};
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加