1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use strict; use warnings; use feature "say"; my $nukletoid_kette = ''; while (my $zeile = <DATA>) { # 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) } say $nukletoid_kette; __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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
#!/usr/bin/perl use strict; use warnings; use feature "say"; my $nukletoid_kette = ''; my %basen; while ( my $zeile = <DATA> ) { # 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#!/usr/bin/perl use strict; use warnings; use feature "say"; my $nukletoid_kette = ''; my @basen_anzahl; while ( my $zeile = <DATA> ) { # 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 push @basen_anzahl, $anzahl; # Wert in Array schieben } say "Häufigkeitsabfolge: "; say join " ", @basen_anzahl; __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