Hmmm... So klappt es: Am Samstag 26 Februar 2005 23:38 schrieb Ferdinand Ihringer:
Hallo,
Ich habe folgendes Problem, dessen Lösung bestimmt einfach ist. Von der Struktur ist es folgendes Perlskript: use FreezeThaw qw(cmpStr);
my $struktur = INPUT1; my %alphabet = INPUT2;
my %newalphabet = %alphabet;
while(my ($a, $b) = each %alphabet) { #Variante 1 if (strCmp($struktur, $b) == 0) { print "Gefunden $a\n" }; #Variante 2 if(strCmp($struktur, $b) == 0) { print "Gefunden $a\n"; return $a" } }
Bei meinem Test wird dies als Subroutine fünfmal in einer Schleife aufgerufen und es sollte 'hallo' gefunden werden. Bei Variante 1 kommt das auch: Gefunden: h Gefunden: a Gefunden: l Gefunden: l Gefunden: o Bei Variante 2 hingegen nicht: Gefunden: h Gefunden: l Gefunden: o
Verstehen tue ich das Problem trotzdem nicht. Es wird wohl mit dem each zusammenhängen, aber das %alphabet wird ja bei jedem Aufruf der Subroutine erneut übergeben. Ferdinand