Alexander (HH): Getter/Setter

Beitrag lesen

Moin Moin!

Schon hier beginnt OOP: Zum Exportieren muss Deine package von der Superklasse Exporter erben: require Exporter; und ist dann selbst ein Exporter mit @ISA = qw(Exporter);.

Cargo cult!

1. require ist nicht nur mehr sinnlose Tipperei, sondern es lädt das Exporter-Modul erst zur Laufzeit, während use es schon zur Compile-Zeit lädt.

2. Direkt an @ISA herumzufummeln ist seit parent (im Core seit 5.10.1 = 2009-08-23) und base (im Core seit 5.4.5 = 1999-04-29) nicht mehr nötig.

3. Um zu exportieren, muß ein Modul überhaupt nicht von Exporter erben, im Gegenteil: Man sollte das vermeiden, weil Exporter eben nicht nur aus einer import-Methode besteht, sondern noch jede Menge anderes Zeug enthält. Siehe Exporting without inheriting from Exporter.

4. Ja, die Exporter-Dokumentation ist noch voll von dem Vererbungs-Unsinn. Leider. Bug!

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".