FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 31 Januar 2016, 16:31:23

Titel: EvalSpecials für Module verursacht WARNING
Beitrag von: Markus Bloch am 31 Januar 2016, 16:31:23
Hallo zusammen,

ich hab soeben feststellen müssen, dass EvalSpecials zum ersetzen von eigenen Platzhaltern in Modulen zu einem Fehler führt.

2016.01.31 16:28:43.415 1 : PERL WARNING: Use of uninitialized value $v in substitution (s///) at fhem.pl line 979.
2016.01.31 16:28:43.415 3 : stacktrace:
2016.01.31 16:28:43.415 3 : main::__ANON__ called by fhem.pl (979)
2016.01.31 16:28:43.415 3 : main::AnalyzePerlCommand called by fhem.pl (1008)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommand called by fhem.pl (937)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommandChain called by ./FHEM/73_PRESENCE.pm (294)
2016.01.31 16:28:43.415 3 : main::PRESENCE_Set called by fhem.pl (3140)
2016.01.31 16:28:43.415 3 : main::CallFn called by fhem.pl (1575)
2016.01.31 16:28:43.415 3 : main::DoSet called by fhem.pl (1606)
2016.01.31 16:28:43.415 3 : main::CommandSet called by fhem.pl (1067)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2181)
2016.01.31 16:28:43.415 3 : main::FW_fC called by ./FHEM/01_FHEMWEB.pm (748)
2016.01.31 16:28:43.415 3 : main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (445)
2016.01.31 16:28:43.415 3 : main::FW_Read called by fhem.pl (3145)
2016.01.31 16:28:43.415 3 : main::CallFn called by fhem.pl (654)
2016.01.31 16:28:43.415 1 : PERL WARNING: Use of uninitialized value $v in concatenation (.) or string at fhem.pl line 980.
2016.01.31 16:28:43.415 3 : stacktrace:
2016.01.31 16:28:43.415 3 : main::__ANON__ called by fhem.pl (980)
2016.01.31 16:28:43.415 3 : main::AnalyzePerlCommand called by fhem.pl (1008)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommand called by fhem.pl (937)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommandChain called by ./FHEM/73_PRESENCE.pm (294)
2016.01.31 16:28:43.415 3 : main::PRESENCE_Set called by fhem.pl (3140)
2016.01.31 16:28:43.415 3 : main::CallFn called by fhem.pl (1575)
2016.01.31 16:28:43.415 3 : main::DoSet called by fhem.pl (1606)
2016.01.31 16:28:43.415 3 : main::CommandSet called by fhem.pl (1067)
2016.01.31 16:28:43.415 3 : main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2181)
2016.01.31 16:28:43.415 3 : main::FW_fC called by ./FHEM/01_FHEMWEB.pm (748)
2016.01.31 16:28:43.415 3 : main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (445)
2016.01.31 16:28:43.415 3 : main::FW_Read called by fhem.pl (3145)
2016.01.31 16:28:43.416 3 : main::CallFn called by fhem.pl (654)



Die Ersetzung an sich funktioniert, aber der oben genannte Fehler tritt dabei auf.

Gruß
Markus


EDIT: Problem gefunden, Hab einen Platzhalter mit undef im %specials an EvalSpecials übergeben. Sollte man denoch abfangen, mMn.
Titel: Antw:EvalSpecials für Module verursacht WARNING
Beitrag von: rudolfkoenig am 31 Januar 2016, 16:41:26
Ich sehe keinen Fehler:

fhem> define d dummy
fhem> define n notify d { Log 1, "$NAME $TYPE $EVENT" }
fhem> info log
fhem> trigger d Hallo
2016.01.31 16:40:27 1 : d dummy Hallo
fhem>


Wg. dem Abfangen bin unsicher: das ist doch ein Programmierfehler im Modul, und das soll lieber gefixt werden.
Titel: Antw:EvalSpecials für Module verursacht WARNING
Beitrag von: Markus Bloch am 31 Januar 2016, 16:44:20
Ja habe ich nach einigen Code-Studien ebenfalls festgestellt.

Danke trotzdem.