[gefixt] PERL WARNING: Prototype mismatch: sub main::sum (@) vs none at

Begonnen von Beta-User, 12 April 2022, 14:45:58

Vorheriges Thema - Nächstes Thema

Beta-User

Hi justme1968,

magst du das bitte fixen?
Quelle: https://forum.fhem.de/index.php/topic,127216.0.html

Perlcritic meint dazu:
ZitatNested named subroutine at line 2148, column 3. Declaring a named sub inside another named sub does not prevent the inner sub from being global.

Eventuell würde sowas funktionieren (kann im Moment nur bestätigen, dass es so fehlerfrei lädt):
  my $sum = sub (@) { my $su = 0; $su += $_ for @_;  return $su };

  my $created = join( '/', @created );
  my $ignored = join( '/', @ignored );
  if( !$force || $sum->(@created) || $sum->(@ignored) ) {

Mal sehen, wann ich ggf. zum testen komme...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

justme1968

danke. ich denke ich habe es behoben.

habe aberlocal *sum = sub { my $sum = 0; $sum += $_ for @_;  return $sum };verwendet. dann schaut der aufruf der funktion aus wie sonst auch und nicht über eine variablen ref.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968