0
跨張貼在http://perlmonks.org/index.pl?node_id=977333查找在哈希剩餘值越小
鑑於以下散列:
my %hash = (1 => "i", 2 => "j", 3 => "k", 4=> "l");
和輸入對
my @pair = (1,2);
my @pair2 = (2,3);
my @pair3 = (1,3);
my @pair4 = (2,4);
我們想找到鑰匙,%hash
哪裏該值小於任何給定對的成員 。
因此,對於所需的輸出是:
@pair -> []
@pair2 -> [1]
@pair3 -> [2]
@pair4 -> [1,3]
什麼是正確的算法來做到這一點? 以下是我的代碼,但失敗:
sub get_output {
my ($inputhash,$pair) = @_;
my @output =();
my %done =();
foreach my $pr (@{$pair}){
foreach my $kn (keys %{$inputhash}){
next if ($pr <= $kn || $done{$kn});
push @output,$kn;
$done{$kn} = 1;
}
}
use Data::Dumper;
print Dumper \@output;
return @output;
}
什麼代碼?在您完成發佈問題之前,您似乎已被綁架。 –
您聲明'$ inputhash',但隨後使用'$ input_hash'。你有三個'{'但四個''' – cdarke
@cdarke:已更正。謝謝。 – neversaint