#!/usr/bin/perl use strict; use warnings; use feature "say"; my $nukletoid_kette = ''; my %basen; while ( my $zeile = ) { # Daten aus DATA-Bereuich einlesen chomp $zeile; # Zeilenendezeichen entfernen next if !length $zeile; # Leerzeile überspringen my ( $base, $anzahl ) = $zeile =~ m{([ATGCatgc]):(\d+)}; # Base (Buchstaben ATGC) und Anzahl (mehrere Ziffern) aus Zeichenkette extrahieren $nukletoid_kette .= $base x $anzahl; # Basenabfolge als Zeichenkette (Basenzeichen mal Anzahl) $basen{ $base } = [ ] if not exists $basen{ $base }; # falls Eintrag für Base in Hash noch nicht existent, leeres Array erzeugen push @{ $basen{ $base } }, $anzahl; # Wert in Array schieben } say "Kette: ", $nukletoid_kette; say; say "Basen und Häufigkeitabfolge: "; for ( sort keys %basen ) { say "$_: ", join ( " ", @{ $basen{ $_ } } ); } __DATA__ A:1 T:21 G:10 C:4 A:2 G:1 T:5 A:2 C:7 T:2 A:1 T:1 G:4