aktualisierung von Perl Modulen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

aktualisierung von Perl Modulen

Beitrag von Bert » 02.07.2004 21:24:30

Hallo,

ich mache meine ersten sehr zögerlichen Schritte mit Perl (um ein bisserl mit Jabber zu spielen) und möchte gerne Net::Jabber aktualisieren. Frage ist nut wie?

Ich will mich nicht mit dpkg anlegen, müßte es also irgendwo unter /usr/local ablegen. Aber findet mein Script es dort auch? Oder kann ich es einfach in meinem Home 'neben' mein Script legen (ist ja im Moment nur Spielerei)? Kennt Perl sowas wie CLASSPATH?

Ich seh schon, sollte wohl doch mal ein gutes Perlbuch suchen (kennt jemand was)

Und gleich noch eine Frage: Perl hat ja die Fähigkeit aus sich heraus Module zu installieren und zu aktualisieren (CPAN). Ist dies unter Debian empfohlen oder beißt sich das mit dem Packetmanagment?

Gruß Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Re: aktualisierung von Perl Modulen

Beitrag von godsmacker » 02.07.2004 21:57:13

Hallo Bert,
Bert hat geschrieben:ich mache meine ersten sehr zögerlichen Schritte mit Perl (um ein bisserl mit Jabber zu spielen) und möchte gerne Net::Jabber aktualisieren. Frage ist nut wie?
Deine Meinung zu Perl klang auf dem Chemnitzer Linuxtag aber noch anders ;-)
Ich will mich nicht mit dpkg anlegen, müßte es also irgendwo unter /usr/local ablegen. Aber findet mein Script es dort auch? Oder kann ich es einfach in meinem Home 'neben' mein Script legen (ist ja im Moment nur Spielerei)? Kennt Perl sowas wie CLASSPATH?
Perl kennt sowas wie @INC. Das ist ein array, in dem sich die Orte befinden in denen Perl nach Modulen usw. schaut.

'.' befindet sich immer in @INC, also kannst Du Deine Module immer dir Deines Skripts ablegen. Ist aber in meinen Augen nicht ganz so toll. Wenn ein Modul in @INC gesucht wird, dann geht es der Reihenfolge nach. Wenn /usr/local/lib/perl/5.8.4 zum Beispiel vor /usr/lib/perl/5.8.4/ in @INC steht, dann wird zuerst dort nachgesehen. Du koenntest also eine neuere Version Problemlos in /usr/local installlieren. Ist aber auch nicht unbedingt sinnvoll. Wozu sollte man 2 verschiedene Versionen eines Moduls installiert haben, wenn man nur eine nutzt (nutzen kann).

Du kannst @INC uebrigens auch in Deinem code beeinflussen wie einen normalen Array. Wenn Du Module allerdings zur Kompilierzeit laden willst (use FooBar;), dann muss das auch vorher passieren. Das kannst Du entweder mit einem

Code: Alles auswählen

BEGIN { push @INC, '/foo/bar' }
Block oder mit dem lib Pragma

Code: Alles auswählen

use lib '/foo/bar';
machen.
Ich seh schon, sollte wohl doch mal ein gutes Perlbuch suchen (kennt jemand was)
Programming Perl von Meister, Larry Wall, hoechstpersoenlich. Das Perl Cookbook ist auch nett.
Und gleich noch eine Frage: Perl hat ja die Fähigkeit aus sich heraus Module zu installieren und zu aktualisieren (CPAN). Ist dies unter Debian empfohlen oder beißt sich das mit dem Packetmanagment?
Das CPAN Modul zum installieren von Modulen mit Debian zu benutzen ist nicht so schlau. Das gibt ziemlich schnell Stress. Mach es besser mit der Paketverwaltung.

Wenn Du eine neuere Version eines Moduls brauchst, welches es schon im Pool gibt, dann solltest Du einen wishlist bug filen. Wenn es das Modul noch nicht gibt, dann kannst Du einen RFP Bug fuer das wnpp Paket erstellen und, da es ja um Perl geht, auch ein Tracker Item bei der [1]Debian Perl Group hinzufuegen.

1. pkg-perl.alioth.debian.org
alioth.debian.org/projects/pkg-perl

Wenn Du eine dieser beiden Moeglichkeiten nutzt kann es aber etwas dauern bis Du das Paket hast. Um mal quick und dirty ein Paket eines Perl Moduls zu erstellen gibt's aber dh-make-perl. Damit ist ein Perl Modul verdammt schnell paketiert, wenn's auch kein sehr gutes Paket ist (sprich nicht geeignet um in's offizielle repository aufgenommen zu werden).

Ich hoffe das hilft,
Florian

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Re: aktualisierung von Perl Modulen

Beitrag von Bert » 02.07.2004 22:40:10

godsmacker hat geschrieben: Deine Meinung zu Perl klang auf dem Chemnitzer Linuxtag aber noch anders ;-)
Räusper, **verlegen dreinschau** ;-) Ja stimmt. Leider ist das Python Modul für Jabber nicht halb so flexibel und schön wie das für Perl (auch wenn mir da leider etwas an Doku fehlt)
godsmacker hat geschrieben: Ich hoffe das hilft,
Florian
Das denke ich. Danke für die ausführliche Antwort. Mal sehen, ob ich heut noch Lust hab, das zu testen, sonst halt morgen.

Gruß Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Re: aktualisierung von Perl Modulen

Beitrag von godsmacker » 02.07.2004 22:56:55

Bert hat geschrieben:
godsmacker hat geschrieben: Deine Meinung zu Perl klang auf dem Chemnitzer Linuxtag aber noch anders ;-)
Räusper, **verlegen dreinschau** ;-) Ja stimmt. Leider ist das Python Modul für Jabber nicht halb so flexibel und schön wie das für Perl (auch wenn mir da leider etwas an Doku fehlt)
Mach Dir nichts draus. Mir geht es genau umgekehrt mit den XML RPC Modulen von Perl und Python.. :-)

Gruss,
Florian

Antworten