FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bastelfeak am 18 November 2019, 20:39:52

Titel: If-Abfrage: Eine Bedingung mit mehreren Werten vergleichen
Beitrag von: bastelfeak am 18 November 2019, 20:39:52
Hallo,
ich habe schon viel gesucht und gelesen und auch schon viel probiert, aber leider noch nicht die Lösung gefunden:

Kann eine if-Bedingung auf mehrere Werte checken?

Abstraktes Beispiel:


{if(VALUE eq "wert1" or "wert2") {fhem "set DEVICE on"}


Ich weiß man kann es auch anders machen:

{if(VALUE eq "wert1" || VALUE eq "wert2") {fhem "set DEVICE on"}


Aber das ist dann nicht mehr sonderlich kompakt.

Für Hilfe bin ich wie immer sehr dankbar!
Titel: Antw:If-Abfrage: Eine Bedingung mit mehreren Werten vergleichen
Beitrag von: amenomade am 18 November 2019, 21:17:55
Nein, die erste Variante geht nicht
Variable in Perl haben ein $ Zeichen vorne.

Ansonsten kann man mit Regex auch arbeiten:
if ($VALUE =~ "Wert1|Wert2")
Titel: Antw:If-Abfrage: Eine Bedingung mit mehreren Werten vergleichen
Beitrag von: bastelfeak am 18 November 2019, 22:33:05
Ah okay. Vielen Dank!

Warum funktioniert das mit ,,=~" aber nicht mit ,,eq"?

Titel: Antw:If-Abfrage: Eine Bedingung mit mehreren Werten vergleichen
Beitrag von: Damian am 18 November 2019, 22:34:25
Zitat von: bastelfeak am 18 November 2019, 22:33:05
Ah okay. Vielen Dank!

Warum funktioniert das mit ,,=~" aber nicht mit ,,eq"?

weil eq keine Regex-Syntax erlaubt.