Hallo,
bei mir fangen alle Fenster mit "Fenster." an, also zB "Fenster.OG.Badezimmer". Nun möchte ich über alle Änderungen darüber informiert werden, also habe ich es so definiert:
define Window.Open notify Fenster.*:basicSet:.255 { WindowOpen($name) }
define Window.Close notify Fenster.*:basicSet:.0 { WindowClose($name) }
Blöderweise kommt nix an. Ich bin mir beim Wildcard (Fenster.*) nicht so sicher, ist das so korrekt? Wenn ich das Fenster direkt abfrage (define Window.Open notify Fenster.OG.Badezimmer:basicSet:.255) Klappt es
Steht was im Log?
Ach verdammt ...
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?)
Dachte aber, mit "$name" bekomme ich den Namen des Devices, welches das Event ausgelöst hat
$NAME
Groß-/Kleinschreibung? Wieso funktioniert es an anderer Stelle mit Kleinbuchstaben?
Weil es so in der notify Doku steht :)
Zitat$NAME and $TYPE contain the name and type of the device triggering the event, e.g. myFht and FHT
$name liefert an anderer Stelle meist den Namen des Gerätes selbst ;)
Das war ja die Frage. $name hat an der Stelle nicht funktioniert, dafür $NAME. Aber wieso mal klein, mal groß? Verstehe die Logik nicht
Es gibt keine "Logik" zu verstehen. Aber es gibt in Linux und in Perl nun mal relevante Groß- und Kleinschreibung.
Und "an der Stelle" steht in der Doku zu notify, dass $NAME das liefert was Du suchst.
Und an anderer Stelle steht in der Doku, dass $name den Namen des Gerätes selbst liefert. Nicht bei notify, dort liefert $NAME den Namen des triggernden Gerätes.
Aha ... :-\ Muss man nicht verstehen.
Trotzdem @all danke für die Hilfe