Also:
Ich bin leidenschaftlicher Rexx-Programmierer, seit Jahrzehnten. Nun frage ich mich allerdings: Hat meine Rexx.dll einen Hau oder hab ich grundlegende Dinge nicht verstanden? Seit Tagen suchte ich einen Fehler in einem größeren Programm und bin nach verzweifeltem Suchen an allen möglichen falschen Stellen nun fündig geworden.
Es geht um den "Gleich"-Operator. Beispiel:
Code: Alles auswählen
/* rexx */
Hallo1 = "20"x || "Hallo"; /* "20"x steht für "Blank" (Leerzeichen) */
Hallo2 = "Hallo";
if Hallo1 = Hallo2 then say "Das ist ja'n Ding!";
/* ende --------- */
Man kann auch nicht sagen: "Jede Art von Whitespace wird ignoriert", das könnte ich noch verstehen. So ist es aber auch nicht. Das obige Beispiel auf "00"x modifiziert führt sehr wohl zur (erwarteten) Ungleichheit. Warum wird ausgerechnet der durchaus signifikante Character "Space" in der Auswertung weggebügelt?
Oder doch ein Bug in meiner Rexx-Umgebung? Immerhin kann ich in der Rexx-Dokumentation weder einen Hinweis auf "==" noch auf diese spezielle Art der "Gleichheits"-Bedingung finden. Fahre eCS 2.1 GA.
Gruß
Don Lucio