Packages

Packages und Funktionsbibliotheken
Subroutinen werden zur wiederholten Verwendung innerhalb eines Programms definiert.
Zweckmäßig ist die Definition von Subs in eigenen Dateien (Bibliotheken), die bei Bedarf in ein Programm eingebunden werden können. Diese Bibliotheken können dann von mehreren Programmen verwendet werden.
Name einer Datei, die ein Package enthält
z.B. pack1.pm (.pm erforderlich)
Ort der Datei im Verzeichnis
@INC oder das gleiche Verzeichnis wie das aufrufende Programm
Packagename
wie Dateiname ohne Extension ( hier : pack1 )
Syntax
Im pack1.pm wird in der ersten Zeile das Package definiert : package pack1;
Die letzte Zeile eines Packages enthät einen wahren Ausdruck : 1;

Die im Package verwendeten Funktionsnamen müssen bekannt gemacht (exportiert) werden :

require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(name_of_fkt1 name_of_fkt2 ...);
Danach erfolgt die Definition der Subroutinen
Im Programm kann das Package mit use pack1; eingebunden werden.
Die Funktionsnamen können dann verwendet werden, als wenn die Funktionen im Script selbst definiert wurden.

Beispiel
Datei /home/willy/bin/script.plDatei /home/willy/bin/give_uc_name.pm
#!/usr/bin/perl

use give_uc_name;

$myname = "Willy Wunz";
$ucname = do_it_now($myname);

print $ucname,"\n";
package give_uc_name;

require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(do_it_now);

sub do_it_now {
    my $name = shift;
    return uc($name);
}

1;