Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5600[/thread]

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

Leser: 1


<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten
kristian
 2007-06-03 17:34
#48280 #48280
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Den Standard-Pfad wirst du in deinem Script setzen müssen / wollen.
Ein globales Setzen hilft dir ja nur auf deinem Rechner und ich glaube nicht, daß du nur für dich schreibst.
Du kannst das Arbeitsverzeichnis des Scriptes - im Normalfall - mit Hilfe von
Code: (dl )
1
2
use FindBin;
my $work_dir = FindBin::Bin;
auslesen und dann z.B. mit Hilfe von File::Spec
Code: (dl )
unshift(@INC, File::Spec->catdir($FindBin::Bin,'mylibs'));

dein "Modul-Verzeichnis" namens "mylibs" an erste Stelle setzen.
Die anderen Module in @INC belasten dein Script nicht. Es wird nur das geladen, was du angibst.
Somit bleibt dein Script portabel, ich kann mir nicht vorstellen, warum du dies nicht willst.
Hmmm, wir sind allerdings mitlerweile bei drei Zeilen, die in jedes Script müssen:
Code: (dl )
1
2
3
use File::Spec;
use FindBin;
unshift(@INC, File::Spec->catdir($FindBin::Bin,'mylibs'));

Gruß
Kristian

PS:
In der Praxis werden es für die Leute die es beruflich machen und die die Seltsamkeiten mancher Hoster kennen noch ein paar Zeilen mehr.
Ich hatte dies hier IMHO schon gepostet, mache es ggf. gerne wieder.
Siggi
 2007-06-03 17:44
#48281 #48281
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=kristian,03.06.2007, 15:34]Hallo

Den Standard-Pfad wirst du in deinem Script setzen müssen / wollen.
Ein globales Setzen hilft dir ja nur auf deinem Rechner und ich glaube nicht, daß du nur für dich schreibst.[/quote]
Ich möchte gerade nicht in jedem Programm den Pfad setzen, sonnst muss ich den Befehl im Internet deaktivieren, dort brauche ich den Pfad nicht.
Und ich brauche den Pfad tatsächlich nur auf meinem lokalen Host in dem XAMPP/Apache-System.
Daher einmal einstellen und fertig?
renee
 2007-06-03 17:48
#48282 #48282
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum installierst Du die Module nicht einfach in die Verzeichnisse, die sowieso schon in @INC sind?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kristian
 2007-06-03 17:58
#48283 #48283
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Dies
Quote
Ich möchte gerade nicht in jedem Programm den Pfad setzen, sonnst muss ich den Befehl im Internet deaktivieren, dort brauche ich den Pfad nicht.


ist IMHO absolut falsch. Bei welchem Hoster brauchst du deine Module nicht?
Bei welchem Hoster kennst du die Installation wirklich?
In der Praxis beginnt man mit dem was universell richtig scheint und macht dann Workarrounds für die Hoster, die es anders handhaben.

Gruß
Kristian\n\n

<!--EDIT|kristian|1180879148-->
Siggi
 2007-06-03 18:16
#48284 #48284
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=renee,03.06.2007, 15:48]Warum installierst Du die Module nicht einfach in die Verzeichnisse, die sowieso schon in @INC sind?[/quote]
Weil ich lokal die Module logisch aufteilen will und in verschiedene Verzeichnisse legen will.
ImInternet liegen sie alle in einem vom Hoster vorgegebenen Verzeichnis.
Siggi
 2007-06-03 18:22
#48285 #48285
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=kristian,03.06.2007, 15:58]ist IMHO absolut falsch. Bei welchem Hoster brauchst du deine Module nicht?
Bei welchem Hoster kennst du die Installation wirklich?
In der Praxis beginnt man mit dem was universell richtig scheint und macht dann Workarrounds für die Hoster, die es anders handhaben.

Gruß
Kristian[/quote]
Ich habe nicht geschrieben, ich bräuchte die Module nicht sondern ich bräuchte den Pfad nicht (die Module liegen dort in den vorgegebenen Pfaden).
Ich wäre Euch dankbar, wenn ich nicht weiter und wieder erläutern müßte "warum", sondern dass mir jemand erläutert "wie"!
Danke
Siggi
kristian
 2007-06-03 18:29
#48286 #48286
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
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. Da sind locker mal 20 Jahre dazwischen.
Die Pfade in @INC sind abhängig von der Installation.
Verlass dich nie auf den Probelauf bei "deinem Hoster", der ist nicht repräsentativ.

EDIT: Gib dein Libverzeichnis an, es wird in deiner Anwendung wohl ohnehin "eigene" Libs geben.
In dieses Verzeichnis lädst du im Falle, daß es nötig ist, alle Module, die der Hoster nicht hat. (die wird es geben)

Gruß
Kristian\n\n

<!--EDIT|kristian|1180881597-->
MisterL
 2007-06-03 18:42
#48287 #48287
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Also wenn ich den Thread richtig verstanden habe, soll auf dem heimischen Testrechner mit XAMPP dieselbe Konfiguration in punkto Pfade und installierte Perlmodule erreicht werden wie beim Hoster.
Eine Blick in "Perl Hacks" [bitte hier klicken] -speziell Kapitel 4- kann hier weiterhelfen. Von dem Forum hier mal abgesehen ;-)

Gruss MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
Siggi
 2007-06-03 18:56
#48288 #48288
User since
2007-06-03
14 Artikel
BenutzerIn
[default_avatar]
[quote=MisterL,03.06.2007, 16:42]Also wenn ich den Thread richtig verstanden habe, soll auf dem heimischen Testrechner mit XAMPP dieselbe Konfiguration in punkto Pfade und installierte Perlmodule erreicht werden wie beim Hoster.
Eine Blick in "Perl Hacks" [bitte hier klicken] -speziell Kapitel 4- kann hier weiterhelfen. Von dem Forum hier mal abgesehen ;-)

Gruss MisterL[/quote]
1. So könnte man es auch formulieren.
2. Aber muss ich jetzt noch ein Buch studieren, um zu der Lösung zu kommen?
kristian
 2007-06-03 18:56
#48289 #48289
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Siggi,03.06.2007, 16:22][quote=kristian,03.06.2007, 15:58]ist IMHO absolut falsch. Bei welchem Hoster brauchst du deine Module nicht?
Bei welchem Hoster kennst du die Installation wirklich?
In der Praxis beginnt man mit dem was universell richtig scheint und macht dann Workarrounds für die Hoster, die es anders handhaben.

Gruß
Kristian[/quote]
Ich habe nicht geschrieben, ich bräuchte die Module nicht sondern ich bräuchte den Pfad nicht (die Module liegen dort in den vorgegebenen Pfaden).
Ich wäre Euch dankbar, wenn ich nicht weiter und wieder erläutern müßte "warum", sondern dass mir jemand erläutert "wie"!
Danke
Siggi[/quote]
Hallo
Quote
Ich habe nicht geschrieben, ich bräuchte die Module nicht sondern ich bräuchte den Pfad nicht


Da ist der Denkfehler. Der Pfad oder die Pfade belasten dich nicht.
Erst wenn du ein Modul einbindest wird es in diesen Pfaden gesucht bis es gefunden wurde oder das Finden ausgeschlossen ist.
Es macht keinen Sinn @INC zu begrenzen, du musst nur die Reihenfolge sehen und deine Module vor den installierten präsentieren.
Du kannst @INC IMHO kaputt machen.
@INC = (); funktioniert.
Aber was sollte das bringen?
Etliche Module brauchst und benutzt du ohnehin, vermutlich ohne dein Wissen.

Gruß
Kristian

EDIT:
Auf einer Nixe kannst du ja mal "set PERL_INC()" testen. Danach geht definitiv gar nichts mehr...\n\n

<!--EDIT|kristian|1180884410-->
<< |< 1 2 3 4 >| >> 37 Einträge, 4 Seiten



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