Thread Perl Modul Datei: Umwandlung subroutine in ein modul (7 answers)
Opened by Gast at 2006-08-09 16:44

topeg
 2006-08-09 22:24
#68799 #68799
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Die einfache Variante:
Speicher das als Datei "show.pm" im selben Ordner wie das Script.
Code: (dl )
1
2
3
4
5
6
package show;
sub show($$)
{
# ...
}
1;

Der Import erfolgt so:
Code: (dl )
require show;

die Funktion nutzt du dann so:
Code: (dl )
show::show($myCGI,\%vars);


Eine Stufe komplexer:
Speicher das als Datei "show.pm" im selben Ordner wie das Script.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
package show;
use vars qw(@ISA @EXPORT @EXPORT_OK);
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(show);
@EXPORT_OK = qw();

sub show($$)
{
# ...
}
1;

Der Import erfolgt so:
Code: (dl )
use show;

die Funktion nutzt du dann so:
Code: (dl )
show($myCGI,\%vars);


Noch mal komplexer:(objektorientiert)
Speicher das als Datei "show.pm" im selben Ordner wie das Script.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package show;
use vars qw(@ISA @EXPORT @EXPORT_OK);
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(new);
@EXPORT_OK = qw();

sub new()
{
my $self=shift;
my %vars=@_;
my $obj=\%vars;
bless($obj,$self);
return $obj;
}

sub show($$$)
{
my $obj=shift(@_);
# ...
}
1;

Der Import erfolgt so:
Code: (dl )
1
2
use show;
my $myshow=show->new();

die Funktion nutzt du dann so:
Code: (dl )
$myshow->show($myCGI,\%vars);


Eine Bemerkung zu Modulpfaden.
Für Perl ist beim Import von Modulen ein "::" gleichbedeutend mit einmen "/" im Dateipfad. Bei einem "use module::anfang::show" sucht Perl "./module/anfang/show.pm"

Aber das kannst du dir auch im Internet durchlesen. Fast alle Dokus zu Perl haben ein entprechendes Kapitel.

Edit:
Habe den Fehler behoben. Danke betterworld habe ich einfach übersehen. :-)\n\n

<!--EDIT|topeg|1155182438-->

View full thread Perl Modul Datei: Umwandlung subroutine in ein modul