2

私は配列とハッシュを持っています:

@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;
            }
        }
    }
}

問題を十分に説明したかどうかはわかりませんが、これが機能しない場合はコードを続行できません...

よろしくお願いします。

4

3 に答える 3

2
my @mappedcodons = map {$hashdictionary{$_}} 
                  grep (defined $hashdictionary{$_},@arraycodons);

また

my @mappedcodons = grep ($_ ne "", map{$hashdictionary{$_} || ""} @arraycodons);
于 2013-10-30T12:32:13.520 に答える