• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Perl: Unterschied zwischen == und eq?

Moin, Moin,

war ja klar das bei mir die ersten Fragen nicht weit sein können. :lol:

Wieso funktioniert
Code:
#!/usr/bin/perl

do {
    print "Bitte eine Zahl eigeben: ";
    $zahl = <STDIN>;
    print "Die Zahl war $zahl";
    print "Weitermachen? Bitte j drücken ";
    chomp ($eingabe = <STDIN>);
} while ($eingabe == "j");

nicht richtig? Bei der Abfrage ist es egal welchen Buchstaben ich eingebe, die Schleife wird weiter ausgeführt, bei Eingabe einer Zahl jedoch abgebrochen.

Code:
#!/usr/bin/perl

do {
    print "Bitte eine Zahl eigeben: ";
    $zahl = <STDIN>;
    print "Die Zahl war $zahl";
    print "Weitermachen? Bitte j drücken ";
    chomp ($eingabe = <STDIN>);
} while ($eingabe eq "j");

Hingegen macht exakt was es soll, aber laut 'Einführung in Perl' sollte beides die gleiche Bedeutung haben. Wo ist also der Unterschied? Vom ersten Eindruck scheint mir das gewisse Ähnlichkeiten zu PHPs Unterscheidung zwischen == und === wo zwischen reinem Inhalt und Inhalt + Datentyp unterschieden wird, aufzuweisen. Mag mir das einer kurz erklären?
 

regexer

Advanced Hacker
Geier0815 schrieb:
Wo ist also der Unterschied?
Probiere mal zum besseren Verständnis folgendes aus:
Code:
print "1 == 01\n" if ("1" == "01");
print "1 eq 01\n" if ("1" eq "01");
print "j == n\n" if ("j" == "n");
print "nj == 1j\n" if ("nj" == "1j");
print 'int("nj"): ',int("nj"),"\n";
print 'int("1j"): ',int("1j"),"\n";
Alles klar?
 
Oben