« Woher kommen meine Visits? | Main | Serverausfälle bei Weblogbetreibern »

Perl-Konfussion

Wo wir gerade beim Erklären sind: Kann mir jemand die Ausgaben von diesem konfusen Perl-Beispiel erläutern. Meine Teilnehmer der Informatik-AG wollten die Ergebnisse wissen, aber ich habe bislang noch keine Erklärung gefunden, die alle Ausgaben einheitlich erklären würde.

Geschrieben von Jan Theofel am 19.04.2005 um 0:10 Uhr (Permalink)
Abgelegt unter Perl

TrackBacks für »Perl-Konfussion«

TrackBack URL: http://www.theofel.de/mt-cgi/mt-tb.cgi/1709

1 Kommentare zu »Perl-Konfussion«

Die Erklärung ist eigentlich einfach und sie gilt nicht nur für Perl sondern für viele andere Programmiersprachen (bspw. C) auch:

Die Zeile "a[++i] = b[i];" enthält mehrere Anweisungen: zum einen das Inkrementieren von i, zum anderen die Zuweisung des Wertes auf der rechten Seite an die Referenz der linken Seite. Obiges enthält die einzelnen Schritte

und es ist nur festgelegt, dass a) vor c) und b) vor c) ausgeführt wird. In welcher Reihenfolge nun a) und b) ausgeführt werden, d.h. wann nun i inkrementiert wird, ist abhängig von der Implementierung des Interpreters/Compilers. Meist bestimmen nämlich in diesen Fällen die vorhandenen Prozessor-Befehle (hier: gibt es indizierten Zugriff mit Pre-Inkrement des Index?) die Reihenfolge.

1 | Bernd Raichle | 3.11.2005 um 15:53

Schreib bitte Deine Meinung:

Kommentare werden moderiert und erscheinen daher ggf. zeitverzögert. Bitte nur themenbezogene Kommentare abgeben die sich auf diesen Eintrag beziehen.

ACHTUNG: Es gilt meine Anti-SPAM-Policy! Werbende Kommentare und SEO-Linkspam werden nicht freigeschaltet. Statt dessen sende ich eine Beschwerde an den Profiteur der Werbung.
Bei persönlichen Meinungen bitte keine Links zu kommerziellen Projekten sonder zu eurer privaten Seite.