Perl-Funktionen liefern Fehlermeldung nach update u. upgrade

Begonnen von bitgulli, 23 April 2026, 11:26:31

Vorheriges Thema - Nächstes Thema

bitgulli

Hallo,

nachdem ich jetzt schon einige Jahre mit meiner FHEM-Installation auf einem Raspi super zurecht gekommen bin, gibt es nach einem Update von FHEM und einem Upgrade auf bullseye Probleme mit meinen selbstgebastelten Funktionen in 99_myutils.pm.
Am Perl-Code wurde absolut nichts geändert.
Da ich kein versierter Perl-Programmierer bin (das letzte Mal als ich mich damit abgequält hatte, war bei der Einrichtung meiner Funktionen in FHEM) muss ich hier mal fragen, warum ich auf einmal eine Fehlermeldung bekomme, die da lautet:

return value: Undefined subroutine &main::<Name der jeweiligen Funktion>

egal, was ich da an eigenen Funktionen aufrufe?

IMHO kann das ja nur mit dem Update (FHEM) bzw Upgrade (Perl-Version?) zusammenhängen, dass sich da etwas bei Perl geändert hat.

Bin für jeden Hinweis dankbar

KölnSolar

Im Log sollte der Grund stehen, warum Deine 99_myutils(beim FHEM_Start) nicht geladen werden kann.
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

juergen012

Moin,
ZitatDebian 11 (Codename ,,Bullseye") wurde am 14. August 2021 veröffentlicht und befindet sich seit dem 14. August 2024 in der Long Term Support (LTS) Phase, die bis zum 31. August 2026 läuft

Fhem unter Proxmox

betateilchen

Zitat von: juergen012 am 23 April 2026, 12:34:39Moin,
ZitatDebian 11 (Codename ,,Bullseye") wurde am 14. August 2021 veröffentlicht und befindet sich seit dem 14. August 2024 in der Long Term Support (LTS) Phase, die bis zum 31. August 2026 läuft

Stimmt, bringt uns aber bei der Ursachenforschung hier im Thread keinen Millimeter weiter.



Zitat von: KölnSolar am 23 April 2026, 11:58:37Im Log sollte der Grund stehen, warum Deine 99_myutils(beim FHEM_Start) nicht geladen werden kann.

Alternativ: in der FHEM Befehlszeile "reload 99_myUtils.pm" eingeben, dann sollte eine Fehlermeldung angezeigt werden, die hoffentlich weiterhilft.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bitgulli

Can't locate XML/Hash/XS.pm in @INC (you may need to install the XML::Hash::XS module) (@INC contains: . ./FHEM ./lib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at ./FHEM/99_myUtils.pm line 7.
BEGIN failed--compilation aborted at ./FHEM/99_myUtils.pm line 7.


Aha, da haben wir es ja. Es scheint ein Modul zu fehlen, das ich damals irgendwie installiert hatte.
Ich habe jetzt versucht, das Modul mittels cpan zu installieren, was zur Folge hatte, dass eine ziemlich lange Meldungsliste über den Bildschirm rollte. Es sieht so aus, als wäre die gesamte Perl-Funktionsbibliothek aktualisiert worden.

Das Ergebnis: Es hat sich nichts geändert, die Meldung kommt immer noch.

Wie bereits gesagt, ich bin eher Laie, was Perl betrifft, und konnte mich schon damals nicht so richtig mit dieser Programmiersprache anfreunden. Der Code erinnert mich immer an die Sprechblasen der Comics meiner Jugendzeit, wenn irgendeine der darin enthaltenen Figuren fluchte  ;D .

betateilchen

Wenn man ohenhin ein wenig orientierungslos auf Betriebssystem und perl ist, sollte man sich nicht auch noch cpan antun, wenn es dafür ein passendes Debian-package gibt.

Probiere mal:

apt install libxml-hash-xs-perl
und danach FHEM neu starten (besser: den raspi neu starten, falls Du jetzt noch mehr gefrickelt hast)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!