FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jeti am 02 Juli 2017, 10:03:46

Titel: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: jeti am 02 Juli 2017, 10:03:46
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?
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: amenomade am 04 Juli 2017, 21:56:48
attr global stacktrace 1 und dann wieder die Log schauen.
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: betateilchen am 04 Juli 2017, 22:36:59

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.
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: amenomade am 05 Juli 2017, 12:43:06
Ja klar. Aber wie kann man wissen, was (Modul? Perl code? myUtils?) die Funktion aufgerufen hat?
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: CoolTux am 05 Juli 2017, 13:46:57
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.
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: amenomade am 06 Juli 2017, 12:09:51
ZitatDieser User weiß eigentlich was er mal wann gemacht hat
Sicher? Es gibt auch viele blinde Copy/Paste von Code aus Foren.... ;)
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: CoolTux am 06 Juli 2017, 12:39:06
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.
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: duke-f am 09 April 2018, 20:32:14
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.
Titel: Antw:PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHE
Beitrag von: betateilchen am 09 April 2018, 20:40:21
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