我有一个数组和一个哈希:
@arraycodons = "AATG", "AAAA", "TTGC"... etc.
%hashdictionary = ("AATG" => "A", "AAAA" => "B"... etc.)
我需要将数组的每个元素转换为哈希字典中的对应值。但是,我得到了错误的翻译。
要查看该问题,我已经打印了$ codon(数组的每个元素),但是每个密码子都重复了几次.....并且不应该这样。
sub translation() {
foreach $codon (@arraycodons) {
foreach $k (keys %hashdictionary) {
if ($codon == $k) {
$v = $hashdictionary{$k};
print $codon;
}
}
}
}
我不知道我是否已经很好地解释了我的问题,但是如果这样做不起作用,我将无法继续我的代码...
提前谢谢了。
最佳答案
my @words = ("car", "house", "world");
my %dictionary = ("car" => "el coche", "house" => "la casa", "world" => "el mundo");
my @keys = keys %dictionary;
foreach(@words) {
my $word = $_;
foreach(@keys) {
if($_ eq $word) { # eq, not ==
my $translation = $dictionary{$_};
print "The Spanish translation of $word is $translation\n";
}
}
}