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.
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.
Ja habe ich nach einigen Code-Studien ebenfalls festgestellt.
Danke trotzdem.