Calocybe: Mini-Einführung in die Programmierung; Thema: Berechnungen

Beitrag lesen

Moin!

ABER: In jeder mir bekannten Programmiersprache gibt es die Schlüsselwörter true und false.

Du kennst also weder C noch Perl?

if (wanted('what ever you think is wanted') == true)
Oder gibts in PERL kein '=='?

Das schon, aber das hier funktioniert nur, wenn Du vorher irgendwo
  sub true() { 1 }
geschrieben hast, denn sonst wird Perl sich ueberlegen, ob es true als einen unquoted string oder eine nichtexistierende Subroutine ansieht.

oben kommt _immer_ wahr raus, weil 'hhh' == 'bbb' (weil 0 == 0).
In welcher Sprache ist das so?

Na in Perl. Reden wir nicht davon?

('abc' == 'abc') ist false, weil die Zeiger der Texte auf verschiedene Adressen zeigen - is aber nur in C/C++ so schlimm.

Nein, das ist true. Du vergleichst zwei Zahlen miteinander. Du meinst vielleicht ("abc" == "abc"). In dem Falle duerfte es vom Compiler abhaengig sein, ob er zwei Exemplare des Strings anlegt.

Deshalb gibt es dort einen speziellen Stringvergleich: (strcmp('abc','abc')==0)

Core dump!

In Scriptsprachen funktionieren aber im allgemeinen direkte Stringvergleiche, wie:
('abc'=='abc') ist true und
('bbb'=='hhh') ist false

Ja, aber nicht in Perl. Dort funktioniert dafuer
 ('abc' eq 'abc') ist 1
 ('bbb' eq 'hhh') ist ''

So long