Nach einem update von Perl gibt ein Skript von mir alles irgendwie doppelt aus. Hier ein snippset:
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
01: #!/usr/bin/perl -pi.bak
02: undef $/;
03: chomp;
04: @splited=split /(\d+)/;
05: for (@splited)
06: {
07: unless (/^\d+$/)
08: {
09: $value = $_;
10: }
11: else
12: {
13: $lines{$_} = $value;
14: }
15: }
16: foreach $key (sort {$a <=> $b} keys %lines)
17: {
18: print "<\$^{$key}\$>";
19: @chars = split /( )*/, $lines{$key};
20: for (reverse @chars)
21: {
22: SWITCH: {
23: # Vokale
24: /'/ && do {$Vok = "_a"; last SWITCH;}; # Qamaz '
25: /"/ && do {$Vok = "_a"; last SWITCH;}; # Qamaz "
26: # ... mehr Vokale
27: # Konsonaten : Fehlerquelle <<<<
28: /a/ && do {print "'$Vok"; undef $Vok; last SWITCH;}; # Aleph
29: /b/ && do {print "b$Vok"; undef $Vok; last SWITCH;}; # Bwet
30: # ... mehr Konsonanten
31: }
32: }
33: print ":\n\\\\\n";
34: }
Das skript soll verschiedene Kodierungen für Hebräischentext umwandeln und tat das auch immer brav. Aber jetzt wird in den Zeilen 28, und 29 ab dem zweiten Aufruf anstelle der Variable $Vok, die nur einen Vokale enthalten sollte, der Vokal und die Konsonanten die zwischen zwei Vokalen stehen ausgegeben. Ich hoffe irgendwer kann nachvollziehen was ich meine und mir helfen.