Ich habe ein Notify auf mehreren devices und würde gerne in meiner perl Funktion wissen welches device das Event getriggert hat
define tuwas.notify notify (test1.on|test2.on) {tuwas($NAME)}
wenn ich in der Perl Funktion print ("Device", $_, "\n"); mache bekomme ich als ausgabe "fhemicon.png"
Ich hab aufs Icon geklickt:-)
Erwartet hätte ich mir aber test1 oder test2
Ich hab auch schon $EVENT versucht. Da bekomme ich als ausgabe "on"
Was grundsätzlich ja ok ist. Erwartet hätte ich mir allerdings die Ausgabe die ich im Log erhalte.
Was mach ich falsch?
Wie du schon richtig vermutet hast, ist die Variable $NAME dafür da.
Geuß
Dan
Sub
tuwas($) {
print("Device: ", $_, "/n");
}
Allerdings liefert mir $NAME in meinem Beispiel "Device: fhemicon.png"
Damit kann ich nichts anfangen:-(
Was mach ich falsch?
Wenn man nicht weiß, was perl interne Variablen wie $_ bedeuten, sollte man sie nicht verwenden.
sub tuwas($) {
my ($v) = @_;
Debug "Device: $v";
}
Danke für den Hinweis.
In der Zwischenzeit weis ich es.
$_ ist der Itterator.
Aber jeder fängt irgendwann einmal mit perl an ;)
Zitat von: Goofy180173 am 11 Juli 2018, 19:27:12
Aber jeder fängt irgendwann einmal mit perl an ;)
ja schon, aber doch bitte nicht mit dessen internen Variablen...
ich hab $_ mit @_ verwechselt :(
Passiert mir aber sicher nicht wieder
und weißt Du denn wenigstens, was @_ bedeutet? 8)
http://perl-seiten.privat.t-online.de/html/perl_spevar.html
Spaßbremse...
Ich weiß. Hoffe es bleibt beim Threadersteller hängen. Einen schönen Abend wünsche ich.