Da bin ich der Meinung, dass lokale Variablen die globalen immer überschreiben.
Das ist auch richtig so, naja - vielleicht ist es ein wenig unglücklich formuliert.
Existiert eine Variable im globalen Scope ist diese innerhalb einer Funktion solange verfügbar, bis eine Variable mit dem selben Namen innerhalb des Funktionsscopes deklariert wurde.
Danach kannst du meines Wissens nach die globale Variable - nach der Deklaration in der Funktion - nicht mehr referenzieren.
Das Beispiel sollte ja darauf abzielen, dass man innerhalb der Funktion eine globale Variable mit dem selben Namen anspricht aber dies nicht mehr geht, weil eine lokale deklariert worden ist und deswegen derleere String ausgegeben wird obwohl "Erdbeere" hätte ausgeben werden müssen.
So einen Fehler zu finden ist schwierig, da es kein syntaktischer sondern semantischer Fehler ist, das kann dir kein Compiler der Welt sagen.
Ganz düster siehts aus wenn du die Deklaration mal oben in der Funktion hast, und in anderen Funktionen mittendrin, da du dann komplett durcheinander kommst und nicht mehr weißt ob du grad eine lokale oder globale Variable ansprichst.
Deshalb gibt es den Programmiergrundsatz nur Elemente so lange am Leben zu halten, wie sie benötigt werden, damit Überschneidungen vermieden werden können.
OT:
Übrigens kannst du au3-Dateien direkt anhängen ohne sie vorher zippen zu müssen.
Außerdem musst du nicht unbedingt "in den Text einfügen" (oder wie das heißt) anklicken. Fügst du den Download nicht ein, hast du unter dem Beitrag ein Anhangsbereich wo man sogar Downloadzahlen sehen kann.
Interessant wenn du Skripte veröffentlichen möchtest und sehen willst wie viele es schon heruntergeladen haben.