Schrift
[thread]5728[/thread]

Eigenes Perl-Modul schreiben....

Leser: 10


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
[HR]Doomrunner
 2003-09-16 19:21
#52773 #52773
User since
2003-09-04
77 Artikel
BenutzerIn
[default_avatar]
Hi,

hat jemand eine gute Anleitung zum ersten eigenen Perl-Modul? Habe mir jetzt so viele Funktionen geschrieben, die ich immer wieder benutze, so dass ich mir die jetzt gerne in ein eigenes Modul packen würde...

thx
[E|B]
 2003-09-16 20:06
#52774 #52774
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Was meinst du mit Modul?
Willst du es auf CPAN veröffentlichen oder einfach nur für den Selbstgebrauch?\n\n

<!--EDIT|[E|B]|1063728412-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Relais
 2003-09-16 20:17
#52775 #52775
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
package Der::Name::Des::Moduls; # Es hilft, die Datei auch so zu benennen (mit einem .pm hintendran), ist aber nicht Pflicht.

# hier alle Funktionen, die in diesen Namensraum hineinsollen.

1; # die ist nötig. Das war aber auch schon alles.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
[E|B]
 2003-09-16 21:57
#52776 #52776
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@Relais

Nö! Du hast vergessen das Modul mit use einzubinden und in ein Verzeichnis in @INC zu legen! ;)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
havi
 2003-09-16 22:01
#52777 #52777
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Das hat Strat mal dazu auf www.perl.de gepostet...

Ich hab nur unwichtige Dinge geändert (Namen usw.)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
So erstellt man ein vernuenftiges Modul (ohne XS, nur Perl) mit dem Namen TestModul
das man auch auf CPAN veroeffentlichen koennte.



1. Modulrahmen erstellen
========================

C:\Module>h2xs -XA -n TestModul
Writing TestModul/TestModul.pm
Writing TestModul/Makefile.PL
Writing TestModul/README
Writing TestModul/test.pl
Writing TestModul/Changes
Writing TestModul/MANIFEST

Es wurden im Verzeichnis ./TestModul einige Dateien erstellt. Wechseln wir mal dort rein ( cd TestModul ).



2. Funktionen oder Methoden einbauen
====================================
Jetzt hat man einen Rahmen, in den man sein Zeug einbauen kann.
Achtung: Bei Perl 5.6.1 wird in dem Modul our verwendet, ein Befehl, den es bei Perl 5.0 noch nicht gibt.

In der Datei TestModul.pm steht ziemlich am Anfang 'Preloaded methods go here'
Dort wird nun folgendes eingefuegt:

sub PrintHello {
my ($param) = @_;
print "Hello, $param\n";
}

Dann wird die Liste mit den Exporttags geloescht, sodass dort steht:

our %EXPORT_TAGS = ();
our @EXPORT = qw();

Ganz unten gibt es einem Punkt und dort steht ein Grundgeruest fuer die Moduldokumentation.
Dort wird die Dokumentation zu diesem Modul eingefuegt.



3. Testen, ob das Modul korrekt ist
===================================

C:\Module\TestModul>perl -e "use TestModul; &TestModul::PrintHello('TestModul')"
Hello, TestModul



4. Uebersetzen und testen
=========================

C:\Module\TestModul>perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for TestModul


C:\Module\TestModul>nmake
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.

cp TestModul.pm blib\lib\TestModul.pm


C:\Module\TestModul>nmake test

Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.

C:\Perl\bin\perl.exe -Iblib\arch -Iblib\lib -IC:\Perl\lib -IC:\Perl\lib test.pl
1..1
ok 1



5. Zu einem tar-Archiv zusammenpacken ( dieser Teil funktioniert hier leider nicht )
=====================================

C:\Module\TestModul>nmake tardist

Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.

C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf TestModul-0.01
C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Manifest=manicopy,maniread -e "manicopy(maniread(),'TestModul-0.01', 'best');"
mkdir TestModul-0.01
tar cvf TestModul-0.01.tar TestModul-0.01
TestModul-0.01/
TestModul-0.01/Changes
TestModul-0.01/Makefile.PL
TestModul-0.01/MANIFEST
TestModul-0.01/README
TestModul-0.01/TestModul.pm
TestModul-0.01/test.pl
C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e rm_rf TestModul-0.01
gzip --best TestModul-0.01.tar



Jetzt hat man eine Datei Namens TestModul-0.01.tar, die man wie andere Module von CPAN installieren kann.

Unter Unix verwendet man anstelle von nmake einfach make...


Gruss
kabel
 2003-09-16 22:40
#52778 #52778
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
[HR
Doomrunner,16.09.2003, 17:21]Habe mir jetzt so viele Funktionen geschrieben, die ich immer wieder benutze, so dass ich mir die jetzt gerne in ein eigenes Modul packen würde...

du bist dir sicher, dass deine funktionen nicht schon als teil deiner distribution mitinstalliert wurden?
was machen denn die funktionen spezielles?
-- stefan
Gast Gast
 2003-09-17 18:52
#52779 #52779
Deine Perl-Installation sollte bereits hervorragende Tutorials mitbringen.
An der Shell gib einfach mal "perldoc perl" ein, um eine Liste von PODs und FAQs zu bekommen.

Bzgl. Module sind besonders die folgenden PODs von Interesse:

perlmod
perlmodlib
perlnewmod

Wenn Du OO Style bevorzugst, können außerdem diese nicht schaden:

perlref
perlboot
perltoot
perltooc
perlobj
perlbot

Alle mittels perldoc aufruf- und in Deinem Pager lesbar.
jan
 2003-09-19 11:53
#52780 #52780
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
ach, kabel, brauchen wir doch nicht. was haltet ihr hier von einer kleinen reinigungsaktion, alles offtopic wird gelöscht, ist ja geklärt.
kabel
 2003-09-19 14:12
#52781 #52781
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
ich bin dafür. wenn havi nix dagegen hat, dann leg mal los! 8)
-- stefan
havi
 2003-09-19 14:35
#52782 #52782
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Ich übernehme das gerne - bin ja auch der Verursacher :)
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2003-09-16 19:21.