与えられた値のハッシュでルックアップを行う「lookup」という名前のサブがあります。与えられた値ではなく、パラメータとして渡された値よりも小さい値を探すように依頼できれば、はるかに強力になることに気づきました。
lookupbigger、lookupsmallなどを作成できますが、もっと良い方法があると確信しています。
# lookup id according to the search criteria
sub lookup {
my( $data, $lk, $lv ) = ( @_ );
my @res;
foreach my $key (keys $data) {
my $value = $$data{$key};
next unless( defined $$value{$lk} );
# this is the line where I want to replace eq with another operator
push(@res, $key) if( $$value{$lk} eq $lv );
}
return \@res;
}