Warum kommt es zu der Meldung, von der Erklärung dazu versteh ich nur Bahnhof:
Subroutine "Nec32RemoteCodesHandlerFR" with high complexity score (21) at line 13, column 1. Consider refactoring.
Aha, Perlcritic auf Stufe 3! Cool!!!
Mein persönlicher (unrühmlicher) Spitzenreiter:
Subroutine "handleIntentSetNumeric" with high complexity score (68) at line 4087, column 1. Consider refactoring.
(Fast) Unwartbar, das Ding, aber ich habe leider keine Idee, wie man es einfacher machen kann...
Dieser "complexity score" gibt einfach nur an, wie viele "Ausgänge" ein Code haben kann. Wie du gesehen hast: ein "if"-Zweig mit eigenem Ausgang (return) weniger, und das Ding sieht "sauber" aus, Perlcritic sieht "20" als "noch ok" an. Ob es wirklich "komplex" ist, ist damit noch lange nicht definitiv entschieden, dein Code hat ja eine trotz allem noch relativ überschaubare Strukutur.
"Refactoring" könnte bedeuten, einzelne if-Zweige in eigene Subs auszulagern, hier z.B. für jeden der "dudevstate" je eine Sub. Das "blöde" im Main-Kontext ist halt, dass einem dann irgendwann die "prägnanten Namen" für subs ausgehen, weswegen viele FHEM-Module intern auch eher selten solche Strukturierungen vornehmen (oder gar auf externe Hilfsmittelchen wie List::unique zurückgreifen), sondern manche "Schnipsel" an vielen Stellen "recycled" werden.
Klarer jetzt?
Wegen "21" würde ich mir jetzt noch nicht allzusehr den Kopf zerbrechen, das ist für solche "dispatch"-ähnlichen Strukturen relativ normal...