PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE

Begonnen von jeti, 02 Juli 2017, 10:03:46

Vorheriges Thema - Nächstes Thema

jeti

Hallo zusammen,

bei der Fehlersuche in einem anderen Problem ist mir dies im Log aufgefallen:

2017.07.02 09:57:37 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 130.
2017.07.02 09:57:37 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 131.

dies sind die code Zeilen der "Trim" Funktion aus der ./FHEM/99_Utils.pm

Kenn jemand diese Warnung und deren Ursache?

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen


Die Fehlerursache ist doch ganz einfach: Die Funktion trim() wird ohne Parameter aufgerufen. Passiert normalerweise dann, wenn man die Funktion mit einer Variablen aufruft und in dieser Variablen nix drinsteht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

Ja klar. Aber wie kann man wissen, was (Modul? Perl code? myUtils?) die Funktion aufgerufen hat?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Ganz einfach. Es handelt sich um eine Funktion welche in der Regel nur vom User aufgerufen werden kann. Dieser User weiß eigentlich was er mal wann gemacht hat oder weiß zu mindest wie er an die Infos kommt. Denn er hat es ja mal eingerichtet.
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

amenomade

ZitatDieser User weiß eigentlich was er mal wann gemacht hat
Sicher? Es gibt auch viele blinde Copy/Paste von Code aus Foren.... ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Ich weiß, aber das sollte dann bitte kein Problem mehr eines Helfenden sein.

Zitat
Meine persönliche Meinung!!!
Derjenige der gegen die Weltkugel tritt möge bitte auch wissen in welche Richtung sie sich dann dreht.
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

duke-f

Lang lang her, ich weiß;)
Trotzdem: Ich habe diese Meldung gester plötzlich aus heiterem Himmel, ohne dass ich jemals selber eine Funktion aus 99_Utils.pm aufgerufen habe. Die Meldung hat sich dann mit anderen gesteigert, besonders hohen Anteil hatte schließlich
Cannot fork: Cannot allocate memory
was dann wohl auch zum wiederholten Aufruf meines Watchdogs und dem Neustart des Cubies führte. Sonst wäre mir das nicht aufgefallen, da ich nicht zu Hause war.

Will damit auch nur sagen, dass es offensichtlich auch der Fall sein kann, dass nicht der User selber sondern irgend ein sehr selten genutztes Modul oder eine besondere Konstellation diesen Fall auslösen kann, scheint mir. Klar, bin hier aber nur einer der Dummie-Anwender und sehe das ganze vielleicht auch falsch.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

betateilchen

Zitat von: CoolTux am 05 Juli 2017, 13:46:57
Es handelt sich um eine Funktion welche in der Regel nur vom User aufgerufen werden kann.

Wie kommst Du auf diese unsinnige Behauptung?

Unten findest Du ein spontanes Suchergebnis nach "trim(" in ./FHEM
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!