Array Übergabe bei Test von BlockingCall

Begonnen von Init, 26 Juni 2017, 14:45:40

Vorheriges Thema - Nächstes Thema

Init

Als Array Referenz hatte ich gerade das gleiche Problem. Lese schon die ganze Zeit parallel im PDF, aber teste auch dabei und will halt auch mein Problem verstehen und lösen.

Es funktioniert, wenn ich die Variablen selbst in der Zuweisung zum Hash oder Array als Referenz zuweise.

So funktioniert es, aber ich frage mich halt, warum ich die Variable als Referenz zuweisen muss und nicht die Variable selbst. (Speicherverbrauch/-belegung mal außen vor)

Wenn es in Perl nur als Referenz geht, dann bin ich zufrieden, wenn es aber auch anders geht, dann würde ich halt gerne meinen Fehler verstehen.

Init

Zitat von: Init am 27 Juni 2017, 21:18:26
Geändert habe ich zusätzlich noch die Zuweisung des Arrays zum Hash
Vorher
my %ParamsNB = (
param1 =>  $param1,
devNames => @devNames
);

Hier hatte ich das Problem, dass ich folgende Meldung bekommen habe, da AAA devNames zugeordnet wird und dann BBB => CCC und DDD =>

Nachher
my %ParamsNB = (
param1 =>  "$param1",
devNames => "@devNames"
);


Wahrscheinlich wird jetzt devNames zu einem String gewandelt.

So, habe heute Abend noch ein bisschen gelesen.

Die Zuweisung müsste so sein, wenn ich das Array nicht als Referenz mitgeben möchte:
my %ParamsNB = (
param1 =>  $param1,
devNames => [@devNames]
);


VG
Marc

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Init

Ja, so funktioniert es. War halt das letzte, was ich noch testen bzw. verstehen wollte.

Hierbei ist es auch egal, ob das Array in einem Hash oder einem Array steckt. Auch ist es egal, ob als Referenz oder "Kopie".

Mir war persönlich wichtig, dass ich verstehe, wie ich in allen Variationen alles ansprechen kann.

CoolTux

Super. Und ich denke Mal wenn man sich so durchgeboxt hat behält man es besser im Kopf  ;D

Und was genau willst Du dann später damit zaubern?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Init

Genauso sehe ich das auch...

Momentan noch nichts konkretes.

Hatte überlegt etwas zum Thema NINA zu machen, aber bin mir nicht sicher, ob ich das zeitlich leisten kann.
Um ein richtiges FHEM-Modul zu bauen gehört wahrscheinlich schon einiges mehr an PERL Kenntnissen dazu.

Kennst du ein Modul, welches sehr einfach gehalten ist und sich zum verstehen der benötigten Strukturen eignet?

CoolTux

Zitat von: Init am 29 Juni 2017, 09:01:57
Kennst du ein Modul, welches sehr einfach gehalten ist und sich zum verstehen der benötigten Strukturen eignet?

Persönlich habe ich das Problem das ich immer ein Projekt brauche, ein Vorhaben, eine Idee welche ich umsetzen möchte. Erst dann verstehe ich auch und mache mir Gedanken.
Um generell in die FHEM Modulprogrammierung rein zu kommen kannst Du den Developer Guide lesen und einfach mal versuchen Sinnvolle 99_myUtils Scripte zu schreiben.
Natürlich wäre ein richtiges Modul zum lernen besser. Aber ohne konkretes Projekt/Vorhaben/Idee ist es einfach doof. Ich hatte damals einfach nur Glück mit meinem AMAD. Ohne das Glück wäre ich heute nicht soweit drin in der FHEM Modul Entwicklung.
Suche Dir etwas wo Du denkst das kannst Du gut gebrauchen, das ist was größeres und mache ein Modul daraus. Und wenn es einfach erstmal nur was für Dich ist, ist ja egal.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Init

#22
Danke für deinen Rat!

Persönlich habe ich schon sehr viele 99_myUtils Skripte. Habe eine Jalousiesteuerung, Bewässerungssteuerung und zahlreiche kleine Skripte.
Auslöser dieses Threads war, dass ich ein Skript für die Bewegungsmelder gebaut habe und jeder Bewegungsmelder abhängige Devices hat und ich anhand des Devicetyps unterschiedliche Aktionen ansteuere.

Hier wäre ein richtiges Modul wahrscheinlich besser und bei den beiden anderen Themen auch. Diese sind wahrscheinlich nicht für andere interessant, da es solche Module schon gibt.

Vielleicht baue ich erstmal eins für mich und wenn das klappt, dann ist vielleicht eine Schnittstelle zu NINA oder wenigstens zu MoWas verfügbar. Dann würde ich vielleicht mal versuchen eins für die Allgemeinheit zu bauen.