[gelöst] Perl Verständnisfrage: if ($MyEmptyAttrVal)

Begonnen von FHEMAN, 12 Juli 2016, 12:51:04

Vorheriges Thema - Nächstes Thema

FHEMAN

Hallihallo,

gestern habe ich "Stunden" mit der Fehlersuche verbracht, da anscheinend

if (-1)

true liefert, was laut Perl Spec. doch nicht der Fall sein sollte?

Ich nutze Abfragen der Art

my $MyAttrVal = AttrVal("myDEVICE", "myAttribute", -1);

um dann später via

if ($MyAttrVal ) {}

zu überprüfen, ob das Attribut gefüllt ist, um dann damit weiterzuarbeiten. Das mache ich bei ReadingsVal genau so.

Hat jemand eine Erklärung für das Verhalten? Wird da der falsche Datentyp zurückgeliefert?
Da ich erst durch FHEM mit Perl in Berührung gekommen bin, verzeiht mir bitte die eventuelle Anfängerfrage.

Schöne Grüße
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

alles außer 0, einem leeren string oder undefined ist true.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

FHEMAN

Ich frage mich gerade, wo ich das gelesen hatte. Werde meine fhem.cfg mal intensiv durchgehen und korrigieren.

Danke dir, Andre und sorry für die Anfängerfrage!
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB