Thread syntax error über mehrere Zeilen trotz Semikolon
(8 answers)
Opened by bioinformatics at 2012-09-26 17:06 Guest bioinformatics Der Code wirkt etwas unheimlich, weil $query und $idxMax nirgends deklariert werden. Vielleicht solltest Du noch einmal ![]() Die Variable $idxMax wird daher auch immer noch den Wert vom letzten Durchlauf der äußeren for-Schleife haben. Sie wird nur erhöht, wenn ein noch größerer Index gefunden wird. Eventuell ist das gewollt. Da ein "}" am Ende fehlt, nehme ich mal an, dass die äußere for-Schleife noch mehr Code enthält, der hier ausgelassen wurde. (So etwas sollte man in Foren vermeiden -- lieber Code posten, der auch direkt von den anderen ausgeführt werden kann.) Jedenfalls kann man das alles viel einfacher schreiben. Zumindest so: Code: (dl
)
1 for my $arrayref (values %$hashref) { Hierbei sieht man auch, dass es sich lohnt, Hilfsvariablen zu benutzen, die eine Referenz auf einen Teil der ganzen Datenstruktur sind. So vermeidet man, dass so viele Sonderzeichen auf einen Haufen gebraucht werden. Den Namen $arrayref habe ich hier nur gewählt, weil ich nicht weiß, welche Bedeutung dieses Array hat. Besser wäre natürlich ein Name, der den Sinn verdeutlicht. Wenn man die Indices nicht explizit braucht, muss man sie in Perl oft gar nicht direkt benutzen. So kann man auch die ersten Zeile umschreiben: Lieblingsmodule:
![]() ![]() |