hotti: Modul-Einbindung nötig oder nicht

Beitrag lesen

hi Dieter,

Woher weiß ich, ob ich einen Modul einbinden muss und ggf. welchen?

nochwas, bischen ausführlicher. Es gibt verschiedene Möglichkeiten der Verwendung eines Perl-Moduls. Module können Funktionen exportieren, wobei es auch da wieder zwei Möflichkeiten gibt:

  
use Foo qw(bar);  # Export der Funktion 'bar' auf Import-Anforderung in main  
print bar(123);   # nutze die Funktion in main  

  
use Foo;          # Foo exportiert Funktionen, Variablen (Symbole)  
print bar(123);   # nutze eine der exportierten Funktionen  

Package main ist Dein Perl-Script, was Module einbindet. Andere Module möchten eine Instanz erstellt haben

  
use Foo;  
my $f = Foo->new(); # Erstelle in er main eine Instanz von Foo, ein Objekt  
print $f->bar(123); # benutze Methode bar mit Argument 123  

I.d.R. werden Methoden mit dem Arrow-Operator aufgerufen (über die Instanz, das Objekt). Hier sieht der Programmierer gleich: aha, Methode bar() gehört zur Klasse (Package) Foo.

Wenn Du Scripts bekommst, wo 'einfach so' mal ne Funktion aufgerufen wird:

my $x = fx(123) und Du Dich fragst, wozu gehört fx(), rufe die Perldoc

perldoc -f fx

und Perl wird antworten: No documentation for perl function `fx' found

Ergo gehört fx() zu irgendeinem Modul, wofür Dir derjenige, von dem Du das Script hast, sicher mehr sagen kann ;)

Hotti