@INC

@INC

am 07.09.2007 08:32:31 von Frank Kulow

Guten Morgen NG,

wo ist denn eigentlich @INC gespeichert?
Wie kann ich @INC dauerhaft (über den nächsten Systemstart hinaus)
ändern (perl -I ist nicht gemeint)?

Danke Frank

Re: @INC

am 07.09.2007 09:43:40 von Frank Seitz

Frank Kulow wrote:
>
> wo ist denn eigentlich @INC gespeichert?

Der Inhalt von @INC wird beim Start von perl dynamisch
aus diversen Angaben aufgebaut. Die Standardsuchpfade sind
im Perl-Exceutable hartkodiert.

> Wie kann ich @INC dauerhaft (über den nächsten Systemstart hinaus)
> ändern (perl -I ist nicht gemeint)?

Kommt drauf an, was Du unter "ändern" verstehst.
Am Anfang Pfade hinzufügen kannst Du durch Setzen der
Environmentvariablen PERL5LIB oder PERLLIB (siehe perlrun).

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Re: @INC

am 07.09.2007 10:08:37 von Slaven Rezic

Frank Kulow writes:

> Guten Morgen NG,
>
> wo ist denn eigentlich @INC gespeichert?
> Wie kann ich @INC dauerhaft (über den nächsten Systemstart hinaus)
> ändern (perl -I ist nicht gemeint)?

Der Wert ist im perl-Binary fest gespeichert. Beim Bauen von perl kann
man den Wert erweitern, siehe otherlibdirs in INSTALL.

Gruß,
Slaven

--
Slaven Rezic - slaven rezic de
Tired of using file selectors? Real programmers use the TAB key for
completion and not for jumping around. Try
http://search.cpan.org/search?mode=module&query=Tk::PathEntr y

Re: @INC

am 07.09.2007 20:53:38 von Christian Winter

Frank Kulow schrieb:
> Guten Morgen NG,
>
> wo ist denn eigentlich @INC gespeichert?
> Wie kann ich @INC dauerhaft (über den nächsten Systemstart hinaus)
> ändern (perl -I ist nicht gemeint)?

Für solche Vorgaben ist das script "sitecustomize.pl" gedacht,
das im sitelib-Verzeichnis liegt.

Den richtigen Pfad findest Du mittels
perl -MConfig -e 'print $Config{sitelib}'

-Christian

Re: @INC

am 12.09.2007 12:03:42 von Ferry Bolhar

"Christian Winter":

> Für solche Vorgaben ist das script "sitecustomize.pl" gedacht,
> das im sitelib-Verzeichnis liegt.
>
> Den richtigen Pfad findest Du mittels
> perl -MConfig -e 'print $Config{sitelib}'

Wobei Perl hierfür mit -DUSE_SIZECUSTOMIZE compiliert
worden sein muss. Ab Perl 5.9 kann man dieses Verhalten mit
dem -f Switch steuern.

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: @INC

am 12.09.2007 13:31:58 von Ferry Bolhar

Ich schrieb:

> Wobei Perl hierfür mit -DUSE_SIZECUSTOMIZE compiliert
> worden sein muss. Ab Perl 5.9 kann man dieses Verhalten mit
> dem -f Switch steuern.

Sorry, sollte -DUSE_SITECUSTOMIZE (mit 'T' statt 'Z') heißen!

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: @INC

am 12.09.2007 16:43:39 von Frank Kulow

Frank Seitz schrieb:
>
> Kommt drauf an, was Du unter "ändern" verstehst.
> Am Anfang Pfade hinzufügen kannst Du durch Setzen der
> Environmentvariablen PERL5LIB oder PERLLIB (siehe perlrun).
>

Die Nutzung von PERLLIB erfüllt mein Anliegen, bei einem Script habe ich
aber seit dem:

Tk::Text object version 804.027 does not match $Tk::Text::VERSION 4.024
at c:/Perl/lib/DynaLoader.pm line 253.
Compilation failed in require at ./p.pl line 88.


Im eingetragenen Pfad befindet sich aber nichts von Tk.

Ich habe

perl, v5.8.7 built for cygwin-thread-multi-64int


und


perl, v5.8.7 built for MSWin32-x86-multi-thread


auf dem Rechner, die sich aber normalerweise nicht behaken.


Gruß Frank

Re: @INC

am 12.09.2007 18:02:31 von Christian Winter

Ferry Bolhar schrieb:
>
>> Wobei Perl hierfür mit -DUSE_SIZECUSTOMIZE compiliert
>> worden sein muss. Ab Perl 5.9 kann man dieses Verhalten mit
>> dem -f Switch steuern.
>
> Sorry, sollte -DUSE_SITECUSTOMIZE (mit 'T' statt 'Z') heißen!

Zumindest ein Teil der aktuellen Perl-Distibutionen sollte
damit kompiliert sein (ActiveState und einige Linux-Distris
haben den Schalter gesetzt). Der "-f" Switch ist schon von
Anfang an (=5.8.7) verfügbar (http://tinyurl.com/2ume6k).

Viele Grüße
Christian