PID20: Use of uninitialized value $retStr ...

Begonnen von Thorsten Pferdekaemper, 29 Oktober 2014, 10:08:43

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
seit einiger Zeit müllt mir die folgende Meldung meine fhem.log voll:

PERL WARNING: Use of uninitialized value $retStr in concatenation (.) or string at ./FHEM/98_PID20.pm line 686.

Meiner Meinung kommt das aus 98_PID20.pm, und zwar hier:

       $actuationDone=$actuation;
        my $retStr="" if (!$ret);     
        PID20_Log $hash, 3, "<$cmd> with ret:$retStr";    # <<<< hier passierts (Zeile 686)
     }

Ich denke mal, dass $ret normalerweise tatsächlich was enthält und deshalb $retStr eben nicht wirklich definiert ist. Vielleicht war ja eigenlich sowas gemeint:

       $actuationDone=$actuation;
        my $retStr="";
        $retStr = $ret if ($ret);     
        PID20_Log $hash, 3, "<$cmd> with ret:$retStr";    # <<<< hier passierts (Zeile 686)
     }


Könnte das mal jemand korrigieren?
Gruß,
   Thorsten
FUIP

John

Hi Thorsten,
ich bin der "jemand".

Kannst du bitte folgendes versuchen:
Zeile 685

my $retStr="" if (!$ret) || (!defined($ret)); 

Alles andere bitte so lassen, wie es war.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Thorsten Pferdekaemper

Hi,
was soll das bringen? Ein paar Zeilen weiter oben steht das hier:

        # execute command
        my $ret;
        $ret = fhem $cmd; 

Dadurch ist $ret immer "defined", oder?
Außerdem: Wieso machst Du Dir überhaupt die Mühe mit dem $ret, wenn damit nie etwas gemacht wird?
Gruß,
   Thorsten
FUIP

John

Hab das Problem gefunden und die neue Version eingechecked.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP