Hallo betateilchen,
ich habe mir mal dein Modul angesehen weil ich auf die Suche gegangen bin, wieso bei bisher einem Modul 10_IT.pm
die Commandref nicht angezeigt wird in einem Device nachdem man auf "Device specific help" klickt.
Da erhält man nur Internal command: it
Der Fehler wird hier liegen in Zeile 44.
if($cmds{help}{InternalCmds} !~ m/$mod\,/) {
Du möchtest bestimmt prüfen auf bestimmte Werte, welche Namen ein Modul besitzen darf bzw. was dort nicht zutreffen darf. oder so ähnlich...
Da aber dein gebasteltes Regex auch bei dem Wert it
in quit,
zutrifft, erfolgt keine Ausgabe der Hilfe.
Hilfsausgaben zur Verdeutlichung:
2020.12.02 11:37:13.035 1: 98_help: IT
2020.12.02 11:37:13.039 1: 98_help: it
2020.12.02 11:37:13.039 1: 98_help: intro,command,devspec,attributes,attr,cancel,define,defmod,delete,deleteattr,deletereading,displayattr,get,include,inform,list,modify,quit,reload,rename,rereadcfg,save,set,setdefaultattr,setreading,setstate,setstate,show,shutdown,sleep,trigger,commands,global,perl,
Sobald du nun dein Regex ändern würdest in
if($cmds{help}{InternalCmds} !~ m/(^|\,)$mod\,/) {
somit sollte deine Bedinung weiterhin erfüllt sein und auch die Commandref wird dann richtig angezeigt weil it nicht mehr auf quit, gematched wird.
Bitte schau es dir mal an und würdest du dies einpflegen?
LG Marco
Danke für den Hinweis, das habe ich nun mal so eingebaut und bin gespannt, ob es irgendwelche Nebeneffekte gibt :)