Thread Tipp gesucht - Skriptübergreifende Counter
(6 answers)
Opened by jan99 at 2015-03-24 11:23 2015-03-24T13:15:22 jan99 Nein, so funktioniert das nicht. Mein Beispiel-Package definiert kein Objekt mit Methoden sondern nur statische Funktionen. Den Funktionen wird auch kein Objekt oder Class-Typ als erstes Argument übergeben. Du hast deshalb in Deinem gesamten Skript auch nur eine Variable $ok. (Wenn Du mehrere brauchst, musst Du einen anderen Ansatz wählen.) Entsprechend brauchst Du auch kein Objekt zu initialisieren. Die Funktionen werden mit dem Package-Namen als Prefix aufgerufen. Also so: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 ... use EBL::Report; ... # Auswertung print "Anzahl OK: ".EBL::Report::ok_count."\n"; ... sub meinefunktion { # für den Report-Counter muss NICHTS übergeben werden ... EBL::Report::ok(); # increment OK Counter } Wenn Du der das EBL::Report:: vor den Aufrufen sparen willst, kannst du die Funktionen auch mit Exporter eportieren. 2015-03-24T13:15:22 jan99 Nein. Die my-Variabeln werden in meinem Beispielcode nie übergeben. Sie sind aber - weil im Package-Scope deklariert - hinter dem my im ganzen Package incl. der dort definierten Funktionen sichtbar und können dort auch verändert werden. Außerhalb des Packages kannst du dagegen nicht auf sie zugreifen. Deshalb brauchst Du dort Accessor-Funktionen wie Report::ok_count() um an den Wert zu kommen. |