Das heißt natürlich, daß die Variabeln, welche beim erneuten Aufruf nicht neu belegt werden, immer noch die alten Werte enthalten. Ich Hirnvieh habe die Variable $printbanner nicht LOKAL definiert.
Bitte vergebt mit diese Hirnlosigkeit.
Das ist der Grund, weshalb ich bei Perl *alles* and Diagnosehilfe einschalte, was auch nur irgendwie geht.
Insbesondere "use strict", was mich dazu zwingt, alle Variablen mit "my" oder "local" zu deklarieren - und dann bin ich mir *bewußt*, daß es eine lokalen bzw. globale Variable ist.
Dein Fehler ist absolut verständlich ...