[Dresden-pm] Problem mit Moduleinbindung

Steffen Schwigon schwigon at webit.de
Mi Aug 15 01:28:37 PDT 2007


"Thomas Rittsche" <thomas.rittsche at gmail.com> writes:
> Ja - so können wir schon mal die Methode calculate aufrufen. Prima.
> Allerdings zerschießt es uns da die übergebene Hash-Referenz. Da
> stehen dann nicht mehr die benötigten Variablen drin, sondern der
> Pfad zu $myModul, z.B.: Module::myModul. Hat jemand Vorschläge ???

Es gibt einen Unterschied zwischen

  Module->method( \%args );
  # oder
  $instance->method( \%args );

und

  Module::sub( \%args );

Erste Variante mit -> ist ein Methodenaufruf, dort wird das Modul (als
String) oder das Objekt $instance als erster Parameter vor den anderen
Parametern eingeschoben. 

Die zweite Variante mit :: ist einfach der Aufruf einer Sub aus dem
Namespace "Module". Hier kommt die Hashref \%args als erstes Argument
an.

Ich musss zugeben, dass ich die Doppelpunktvariante auch grade nicht
ohne String-eval hinbekomme.

Steffen
-- 
Steffen Schwigon <schwigon at webit.de>
Dresden Perl Mongers <http://dresden-pm.org/>
Deutscher Perl-Workshop <http://www.perl-workshop.de/>