Schrift
[thread]5600[/thread]

Definition von @inc: Wo kann man den Parameter angeben (Seite 3)

Leser: 1


<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten
Siggi
 2007-06-03 18:59
#48290 #48290
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=kristian,03.06.2007, 16:29]Hallo
Quote
Im Internet liegen sie alle in einem vom Hoster vorgegebenen Verzeichnis.

Da irrst du dich gewaltig.
In der Praxis musst du Perlinstallationen von 5.3 bis 5.8 bedienen.[/quote]
Mein Hoster hat einen definierten Pfad mit mehreren Bibliotheken und mit der Vorgabe, wohin die Module müssen. Wieso muss ich dann Perlinstallationen von 5.3 bis 5.8 bedienen?
Siggi
 2007-06-03 19:02
#48291 #48291
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
Also noch einmal den Aufruf an alle.
Es müßte doch eine Stelle im Perl-System geben, wo man den vordefinierten Pfad ändern kann!
Also wo ändere ich und wie (mit welchem Statement) ändere ich?
kristian
 2007-06-03 19:13
#48292 #48292
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo
Ich sagte es doch eben:
Code: (dl )
1
2
3
4
BEGINN{
@INC =();
unshift(@INC, '/mypath/to/inc');
}

Der Sinn ist aber nach wie vor zweifelhaft.
Wenn du eine systemweite Lösung suchen solltest, ich glaube es war die Rede von einem DOS muss ich die Frage an die - sorry - "Mausschubser" weitergeben.

Gruß
Kristian\n\n

<!--EDIT|kristian|1180883769-->
betterworld
 2007-06-03 19:24
#48293 #48293
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=Siggi,03.06.2007, 12:01]sitecustomize.pl ist in meiner Installation leer (wie du schon vermutet hast)[/quote]
Dass es leer ist, meinte ich nicht mit meiner Vermutung.  Ich schrieb, dass es meist "deaktiviert" ist.  Wenn es aktiviert ist (das kann man beim Kompilieren von Perl tun, es haengt also davon ab, ob die Hersteller Deiner Perl-Distribution es aktiviert haben), wird sitecustomize.pl bei jedem perl-Start ausgefuehrt.  Da es aber meist deaktiviert ist, versucht perl gar nicht erst, dieses Script auszufuehren, daher ist es dann egal, ob es leer ist oder nicht.

Falls es bei Dir aktiviert ist, kannst Du da Code reinschreiben, der z. B. @INC beliebig manipuliert.\n\n

<!--EDIT|betterworld|1180884334-->
MisterL
 2007-06-03 19:26
#48294 #48294
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
So eine schwierige Geburt. Das ganze Buch muss man nicht studieren, Kapitel 4 reicht.
Das @INC Verzeichnis auslesen geht so:
Code: (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl -w
use strict;
use warnings;
print ("Include-Verzeichnisse:\n\t'",
join( "'\n\t'",@INC), "'\n"
);
exit(0);
(hoffentlich ohne Schreibfehler)

Mit PERLLIB:
set PERLLIB=d:/temp (unter Windows mit /temp als Beispielordner)

Mit Perl (Perl Hacks, Hack 29):
$ perl -Mlib=lib show_users.pl
Das wäre analog zu "use lib 'Verzeichnis'"
Quote
Mit dem Flag -I können Sie ebenfalls Pfade hinzufügen, aber nicht ausschliessen
“Perl is the only language that looks the same before and after RSA encryption.”
kristian
 2007-06-03 19:39
#48295 #48295
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Das kann ich für die Nixen bestätigen:
Nach
Code: (dl )
set PERLLIB='/usr/local/bin/perl', '/usr/lib/perl5/5.6.1/i586-linux', '/usr/lib/perl5/5.6.1', '/usr/lib/perl5/site_perl/5.6.1', '/usr/lib/perl5/site_perl/5.6.1', '/usr/lib/perl5/site_perl.Exporter.pm'

laufen alle Scripte die 5.61 auf diesem System brauchen wieder, für andere Installationen will man natürlich die Pfade anpassen.
Wieder was gelernt...

Gruß Kristian
pq
 2007-06-03 19:43
#48296 #48296
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Siggi,03.06.2007, 17:02]Also noch einmal den Aufruf an alle.
Es müßte doch eine Stelle im Perl-System geben, wo man den vordefinierten Pfad ändern kann!
Also wo ändere ich und wie (mit welchem Statement) ändere ich?[/quote]
ja, du musst die umgebungsvariable PERL5LIB verändern. wie du das
tust, hängt davon ab, welches betriebssystem und welche umgebung du
hast. in der bash unter linux:
Code: (dl )
1
2
3
4
5
$ export PERL5LIB=/foo
$ perl script.pl

# oder
$ PERL5LIB=/foo perl script.pl

wenn das skript über apache gestartet wird, hängt es davon ab, wieviel
einfluss du auf die apache conf hast und ob umgebungsvariablen
angeschaltet sind oder nicht, und unter welchem user das skript gestartet
wird.
kann halt sein, dass dir nix anderes als "use lib" übrigbleibt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
kristian
 2007-06-03 20:02
#48297 #48297
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

> export PERL5LIB=/foo
Code: (dl )
1
2
3
4
5
6
7
8
9
10
kristian@gate2:~/Progs/qed> export PERL5LIB=/foo

kristian@gate2:~/Progs/qed> perl -wle 'print join("\n",@INC);'
/foo
/usr/local/lib/perl5/5.8.5/i686-linux
/usr/local/lib/perl5/5.8.5
/usr/local/lib/perl5/site_perl/5.8.5/i686-linux
/usr/local/lib/perl5/site_perl/5.8.5
/usr/local/lib/perl5/site_perl
.

fügt /foo am Anfang von @INC zu.
Das kann nicht die Lösung sein.

Es geht IMHO darum @INC zu löschen und neu zu setzen.

Gruß
Kristian

EDIT: Fipptehler
EDIT_NEXT: Wir sind hier auf dem Level von root oder einem priviligiertem User, für die Masse ist es eher sinnfrei.\n\n

<!--EDIT|kristian|1180887350-->
Siggi
 2007-06-03 21:54
#48298 #48298
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
Quote
ja, du musst die umgebungsvariable PERL5LIB verändern. wie du das
tust, hängt davon ab, welches betriebssystem und welche umgebung du
hast. in der bash unter linux:


Die perl5lib anzugeben, scheint mir am plausibelsten. In der Dokumentation habe ich gelesen, dass diese dann perllib ersetzt, nur wie und wo man die perl5lib angibt, habe ich in der Beschreibung nicht gefunden.
Wenn mir jetzt noch jemand schreiben könnte, wie dies unter Windows XP geht, dann hätten wir das Problem gelöst.
Vielleicht noch einmal zusammengefasst:
Ich habe unter WIN XP das XAMPP von Apachefriends installiert und darunter Perl.
MisterL
 2007-06-03 22:06
#48299 #48299
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
WindowsXP, Perl 5.8, auch Apache von apachefriends installiert:
set perl5lib=C:\temp
Programm von oben verwenden:
Quote
Include-Verzeichnisse:
'c:\temp'
'C:/perl/site/lib'
'C:/perl/lib'
'.'

"set perl5lib" ist übrigens mächtiger als "set perllib"

Gruss MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten



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