Hi Matti,
in einem Punkt gebe ich Dir Recht, "sauberer Programmierstil" kann keine Variable sein und auch kein DEFINE oder sonst was, muß also ein String sein. Fein aufgepaßt, macht ein Bienchen *g*.
ABER: In jeder mir bekannten Programmiersprache gibt es die Schlüsselwörter true und false. Und die schreibt man da genauso hin, wie ein if, ein while oder ein return. Und wenn die Methode wanted(String) einen boolschen Wert zurückgibt, dann kann ich doch bestimmt auch in Perl so vergleichen können:
if (wanted('what ever you think is wanted') == true)
Oder gibts in PERL kein '=='?
oben kommt _immer_ wahr raus, weil 'hhh' == 'bbb' (weil 0 == 0).
In welcher Sprache ist das so? Ich kenne es nur andersrum:
('abc' == 'abc') ist false, weil die Zeiger der Texte auf verschiedene Adressen zeigen - is aber nur in C/C++ so schlimm. Deshalb gibt es dort einen speziellen Stringvergleich: (strcmp('abc','abc')==0)
In Scriptsprachen funktionieren aber im allgemeinen direkte Stringvergleiche, wie:
('abc'=='abc') ist true und
('bbb'=='hhh') ist false
Oder hast Du was falsch verstanden? Also wanted() ist eine "gedachte" Funktion, die prüft, ob der als Parameter angegebene Tatbestand gewollt/gesucht ist oder nicht. Dementsprechend gibt sie natürlich ein true oder false zurück, also etwa so (Javascript-like):
function wanted (sWanted) {
switch(sWanted) {
case 'sauberer Programmierstil': return true;
case 'Eis am Stiel: return true;
case 'schlechter Programmierstil': return false;
case 'Lottogewinn': return true;
default: return false;
}
}
Greetings
Andreas