[gelöst] PERL Bedingung - Ergebnis völlig unlogisch

Begonnen von Pi_01, 25 April 2020, 10:34:23

Vorheriges Thema - Nächstes Thema

Pi_01

Hallo,
meine stateFormat Attribut sieht wie folgt aus:

{return &meineFunktion('Inhalt2');}

Und die Funktion innerhalb von 99_myUtils.pm:

sub meineFunktion{
my $ausgabe = '';

if ($_[0]=='Inhalt1')
{
$ausgabe.= 'ErsteSchleife '.$_[0];
}
elsif ($_[0]=='Inhalt2')
{
$ausgabe.= 'ZweiteSchleife '.$_[0];
}

return $ausgabe;
}


Als Ausgabe erhalte ich komischerweise "ErsteSchleife Inhalt2"
Wie kann das sein??

Erwartet hätte ich:
ZweiteSchleife Inhalt2

herrmannj


Christoph Morrison

Zitat von: Pi_01 am 25 April 2020, 10:34:23

if ($_[0]=='Inhalt1')


Du vergleichst Strings mit einem numerischen Operator. Inhalt1 evaluiert zu 1, Inhalt2 ebenfalls, also ist die erste Bedingung wahr.

Otto123

Zitat von: Christoph Morrison am 25 April 2020, 11:27:22
Du vergleichst Strings mit einem numerischen Operator. Inhalt1 evaluiert zu 1, Inhalt2 ebenfalls, also ist die erste Bedingung wahr.
Christoph: Bist Du sicher? Ich meine "String" evaluiert (wie Du sagst  ;) ) zu 0 bzw. wenn der String eine führende Ziffer enthält zu dieser:
Test
{"egal">"1"}
{"egal">"0"}
{"egal">"-1"}
{"2egal">"1"}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Christoph Morrison

Zitat von: Otto123 am 25 April 2020, 11:40:46
Christoph: Bist Du sicher? Ich meine "String" evaluiert (wie Du sagst  ;) ) zu 0 bzw. wenn der String eine führende Ziffer enthält zu dieser:

Nö, aber ob 0 oder 1, beides ist im numerischen Vergleich jeweils miteinander wahr. Was stört dich an evaluiert?

Otto123

Die Logik ist klar. Ich hatte für mich nur ermittelt: Ein String ohne Zahl am Anfang wird im numerischen vergleich offenbar zu 0. Ich war mir aber nicht sicher ob das wirklich stimmt, könnte ja auch "nichts" sein oder so was. Ich will es immer genau wissen :)
Nein mich stört "evaluiert" nicht ;) das ist ok. Ich wollte nur ausdrücken: ich habe den Satz von Dir übernommen ;)

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pi_01

Danke Jungs,
ich komm aus der PHP-Szene, daher der Fehler mit dem Operator ==