Schrift
[thread]5600[/thread]

Definition von @inc: Wo kann man den Parameter angeben

Leser: 1


<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten
Gast Gast
 2007-06-03 01:24
#48270 #48270
Hallo,
ich möchte z.T. andere Bibliotheken angeben als voreingestellt.
Ich könnte im Perl-Programm neue hinzufügen mit use lib "....".
Das müsste ich aber dann in jedem meiner Programme machen - und ich könnte keine nicht benötigte lib löschen.
Wo kann man bei der Konfiguration @lib definieren?
betterworld
 2007-06-03 05:44
#48271 #48271
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Es heisst weder @inc noch @lib, es heisst @INC.  Du kannst mit perl -I Verzeichnisse angeben oder die Umgebungsvariable PERL5LIB setzen.  Siehe perlrun. Siehe in perlrun auch die Hinweise ueber sitecustomize.pl, allerdings ist das auf vielen Systemen deaktiviert.\n\n

<!--EDIT|betterworld|1180835200-->
PerlProfi
 2007-06-03 11:05
#48272 #48272
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Quote
Das müsste ich aber dann in jedem meiner Programme machen - und ich könnte keine nicht benötigte lib löschen.

Gibt es denn Gründe dafür, dass man Pfade aus @INC wieder entfernt ?\n\n

<!--EDIT|PerlProfi|1180854405-->
Siggi
 2007-06-03 14:01
#48273 #48273
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
Erst einmal Danke für die Aufklärung.
Nachdem ich mich aber mit dem Perl-System noch nicht auskenne, komme ich trotzdem nicht weiter.
sitecustomize.pl ist in meiner Installation leer (wie du schon vermutet hast). Im Internet habe ich auch keines gefunden zum download - nur immer Sichherheitswarnungen.
Ich hab dann in meinem LW auf dem Perl installiert ist gesucht nach @INC, nach perllib und nach perl5lib. Ich habe Hunderte von Einträgen gefunden aber keinen, wo ich hätte erkennen können, dass man dort die Bibliotheken angibt.
Den direkten Aufruf von der Kommandozeile verwende ich nicht (perl I), bleibt also Dein Vorschlag, die Umgebungsvariable PERL5LIB zu setzen.
Könntest Du mir bitte schreiben, wo und wie man das macht?
Danke!
nepos
 2007-06-03 14:20
#48274 #48274
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das hängt davon ab, wo deine Skripten aufgerufen werden. Wenn es in deiner Shell ist, in deren .profile oder ähnlichen Dateien.

Unter Debian gäbe es dann für systemweite Variablen auch noch /etc/environment.
Siggi
 2007-06-03 14:36
#48275 #48275
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
Ich rufe das Skript im Browser auf (WIN XP)
linse
 2007-06-03 15:04
#48276 #48276
User since
2006-02-02
61 Artikel
BenutzerIn
[Homepage]
user image
Wenn Du Perl kompilierst kommt beim
configure script irgendwann die frage.
Ansonsten gibts die env variable
PERL5LIB=/foo/bar:/bar/foo:/irgend/ein/pfad.
Siggi
 2007-06-03 15:35
#48277 #48277
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=linse,03.06.2007, 13:04]Wenn Du Perl kompilierst kommt beim
configure script irgendwann die frage.
Ansonsten gibts die env variable
PERL5LIB=/foo/bar:/bar/foo:/irgend/ein/pfad.[/quote]
Ich habe Perl aus dem Internet heruntergeladen. Da war keine Kompilierung nötig, also auch keine solche Frage.
Da ich keine Kenntnisse mit den Tiefen des Perl-Systems habe, weiß ich nicht wo ich die Angabe
PERL5LIB=/foo/bar:/bar/foo:/irgend/ein/pfad.
machen muss.
Wo ich bisher etwas verändert habe, ist die httpd.conf.
Gehört es dorthin?
kristian
 2007-06-03 16:43
#48278 #48278
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Ihr überseht, dass alle Pfade in @INC nach dem geforderten Modul durchsucht werden.
Dies geschieht in der Reihenfolge, in der die Pfade in @INC stehen.
Bei
Code: (dl )
unshift(@INC,'/path/to/dir');
oder
Code: (dl )
use lib('/path/to/dir');
ist der angegebene Pfad vorne. Die Suche wird nach dem "ersten Finden" eingestellt.
Somit kann man alle Module der Standard-Perl-Installation mit eigenem "Stoff" ersetzen, zumindest wenn es sich um reinen Perl-Code handelt.

Gruß
Kristian
Siggi
 2007-06-03 17:10
#48279 #48279
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=kristian,03.06.2007, 14:43]Somit kann man alle Module der Standard-Perl-Installation mit eigenem "Stoff" ersetzen, zumindest wenn es sich um reinen Perl-Code handelt.[/quote]
Meine Frage war aber wo und wie kann man den standardmäßigen
Pfad ersetzen (so dass er auch beim nächsten Start von Perl noch Gültigkeit hat).
<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten



View all threads created 2007-06-03 01:24.