FHEM Forum

FHEM => Frontends => Thema gestartet von: DS_Starter am 20 Februar 2021, 19:19:14

Titel: weekprofile - Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/...
Beitrag von: DS_Starter am 20 Februar 2021, 19:19:14
Hallo,

mit der aktuellen Version von weekprofile erhält man beim Start diese Prototype mismatch Meldungen:


2021.02.20 18:18:42.610 1: PERL WARNING: Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 7038.
2021.02.20 18:18:42.610 1: stacktrace:
2021.02.20 18:18:42.610 1:     main::__ANON__                      called by /usr/share/perl/5.28/Exporter.pm (66)
2021.02.20 18:18:42.610 1:     Exporter::import                    called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.610 1:     main::BEGIN                         called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.610 1:     (eval)                              called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.611 1:     (eval)                              called by fhem.pl (2657)
2021.02.20 18:18:42.611 1:     (eval)                              called by fhem.pl (2656)
2021.02.20 18:18:42.611 1:     main::CommandReload                 called by fhem.pl (2030)
2021.02.20 18:18:42.611 1:     main::LoadModule                    called by fhem.pl (2087)
2021.02.20 18:18:42.611 1:     main::CommandDefine                 called by fhem.pl (1259)
2021.02.20 18:18:42.611 1:     main::AnalyzeCommand                called by fhem.pl (1110)
2021.02.20 18:18:42.611 1:     main::AnalyzeCommandChain           called by fhem.pl (1397)
2021.02.20 18:18:42.611 1:     main::CommandInclude                called by fhem.pl (613)
2021.02.20 18:18:42.611 1: PERL WARNING: Prototype mismatch: sub main::max ($@) vs (@) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 7038.
2021.02.20 18:18:42.612 1: stacktrace:
2021.02.20 18:18:42.612 1:     main::__ANON__                      called by /usr/share/perl/5.28/Exporter.pm (66)
2021.02.20 18:18:42.612 1:     Exporter::import                    called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.612 1:     main::BEGIN                         called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.612 1:     (eval)                              called by ./FHEM/98_weekprofile.pm (18)
2021.02.20 18:18:42.612 1:     (eval)                              called by fhem.pl (2657)
2021.02.20 18:18:42.612 1:     (eval)                              called by fhem.pl (2656)
2021.02.20 18:18:42.612 1:     main::CommandReload                 called by fhem.pl (2030)
2021.02.20 18:18:42.612 1:     main::LoadModule                    called by fhem.pl (2087)
2021.02.20 18:18:42.612 1:     main::CommandDefine                 called by fhem.pl (1259)
2021.02.20 18:18:42.612 1:     main::AnalyzeCommand                called by fhem.pl (1110)
2021.02.20 18:18:42.612 1:     main::AnalyzeCommandChain           called by fhem.pl (1397)
2021.02.20 18:18:42.613 1:     main::CommandInclude                called by fhem.pl (613)


Vermutlich liegt es daran dass


use List::Util qw[min max];


eingebunden ist, was mit den subs min/max aus 99_Utils.pm kollidiert. Ein auskommentieren von "use List::Util qw[min max];" löst das Problem.

Außerdem gibt es noch diese Mitteilung:

Too many arguments for main::weekprofile_createTempMap at ./FHEM/98_weekprofile.pm line 1388, near "$attrVal)"


In Zeile 1388 wird


weekprofile_createTempMap($hash, $attrVal);


aufgerufen. Die Funktion erwartet aber nur ein Argument (Zeile 1393):


sub weekprofile_createTempMap($) {
..
}


Die sub so geändert -> "sub weekprofile_createTempMap($;$)" -> löst das dann auch.

Grüße,
Heiko
Titel: Antw:weekprofile - Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/...
Beitrag von: Beta-User am 20 Februar 2021, 19:27:27
In nicht gepackagten Modulen sollte eher minNum() statt min() aus 99_Utils.pmverwendet werden...
Titel: Antw:weekprofile - Prototype mismatch: sub main::min ($@) vs (@) at /usr/share/...
Beitrag von: DS_Starter am 20 Februar 2021, 19:31:06
Ja, noch besser.