@martinp876
Ich glaube, ich hab jetzt eine Idee, woran es liegt:
Es sind zwei Stellen im Code meiner Meinung nach problematisch. Die großen Fragen, die sich mir stellen sind: "Warum ging das jemals? (konnte nicht herausfinden, dass sich das kürzlich geändert hat)" und "Warum ist das offenbar nur bei mir ein Problem?".
Stelle 1 - Zeile 122:
if(%prioQueues) {
-->my $nice = minNum(keys %prioQueues); <--
my $entry = shift(@{$prioQueues{$nice}});
delete $prioQueues{$nice} if(!@{$prioQueues{$nice}});
Die Funktion "minNum" erwartet eigentlich ein Skalar und ein Array. Hier wird nur ein Array übergeben. In der Funktion kommt dann als erster Parameter nur die Länge des Arrays an (meine Vermutung).
Habe die Zeile bei mir in das geändert:
my $nice = minNum(19, keys %prioQueues); # 19 is highest nice factor
Stelle 2 - Zeile 132:
($shortarg,undef) = split(/:|;/,$shortarg,2);
"split" liefert undef zurück, falls man als Parameter einen leeren String zurück gibt. Der Code erwartet aber als Rückgabewert immer einen String. Wenn undef kommt, dann gehen spätere Konkatenationen schief.
Hab bei mir an die Zeile ein if angehängt:
($shortarg,undef) = split(/:|;/,$shortarg,2) if length $shortarg > 0;
Gibt bestimmt noch elegantere Wege... oder ich bin auf dem Holzweg und es gibt eine Erklärung, warum das jetzt (nur) bei mir überhaupt ein Thema ist...