Perl - Zeichenkette auftrennen und übersetzen
Guten Abend zusammen,
ich bin Perl-Anfänger und mit meinem Latein am Ende.
Folgende Problemstellung: Ich habe eine Aneinanderreihung von Zeichenketten "ATGTGACTGGGTAAACCA" usw. in einem String vor mir liegen. Diese Zeichenkette soll nun nach jedem dritten Zeichen getrennt werden, wobei jede dreier Gruppe ein Element eines Arrays darstellen soll, so meine Überlegung.
Ergebnis auf dem Bildschirm sollte so aussehen: "ATG TGA CTG GGT AAA CCA" usw. Jede Dreier Gruppe (Triplet), sollte nun anschließend übersetzt werden, mittels einem zu Beginn angelegten Hashes:
Code:
%hash = (
"atg" => "F ",
"cca" => "M ",
"tga" => "F ",
"ctg" => "L ",
"aaa" => "S ",
"ggt" => "L ",
);
Die Werte sowie die Schlüssel habe ich in Arrays gespeichert und anschließend die Hashlänge bestimmt.
Code:
@triplets = keys %hash;
@buchstabe = values %hash;
$hashlaenge = scalar @buchstabe;
Dadurch war es mir möglich die Zeichenfolge zu übersetzen, aber nur ungeordnet.
Code:
for ($i = 0; $i <= $hashlaenge; $i++) {
$zeichenfolge =~ s/$triplets[$i]/$buchstabe[$i]/ig;
}
Mein Problem: Ich weiß nicht wie ich dreier Gruppen (Triplets) bilde (Vorrausetzung für eine geordnete Übersetzung) und die die dann nacheinander zu übersetzen. Folgende Schritte sollen ausgeführt werden:
"ATGTGACTGGGTAAACCA" => "ATG TGA CTG GGT AAA CCA" => "F F L L S M"
Weiß jmd. Rat? Hoffe ich hab mich, als Anfänger, verständlich genug ausgedrückt :D
Edit: Ich kenne die Funktion "split", nur wie ich da nach jedem dritten Zeichen trenne?