Schrift
[thread]6193[/thread]

@INC Module im Unterverzeichnis von ./ (Seite 2)

Leser: 1


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Gast Gast
 2004-04-17 19:12
#81592 #81592
Oder so:
Code: (dl )
1
2
3
4
BEGIN {
   $0 =~ m~(.*)/[^/]+~ || $0 =~ m~(.*)\\[^\\]+~;    
   unshift @INC, $1;
}


damit bist Du 'immer' (auch unter win) im Arbeitsverzeichnis des Hauptprogramms und kannst dann auf die Module mit

Code: (dl )
use Unterverzeichnis::MeinModul;


aufrufen.
Crian
 2004-04-19 12:56
#81593 #81593
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=Knuddlbaer,14.04.2004, 14:06]Kann ich das Ziel dennoch erreichen ohne Global @INC zu ändern ?[/quote]
Eigentlich lautet die korrekte Antwort nein. Denn auch "use lib", das ich hier ganz klar über alle anderen genannten Lösungen favorisiere, ändert intern @INC.

Aber wenn Dir "ohne @INC selbst zu ändern" reicht, nimm use lib.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ptk
 2004-04-19 14:11
#81594 #81594
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Troll,17.April.2004, 17:12]Oder so:
Code: (dl )
1
2
3
4
BEGIN {
   $0 =~ m~(.*)/[^/]+~ || $0 =~ m~(.*)\\[^\\]+~;    
   unshift @INC, $1;
}


damit bist Du 'immer' (auch unter win) im Arbeitsverzeichnis des Hauptprogramms[/quote]
Immer? Auch unter VMS oder MacOS?\n\n

<!--EDIT|renee|1090848213-->
Gast Gast
 2004-04-19 14:28
#81595 #81595
Neeee (schäm)
nur unter Linux und win
ptk
 2004-04-19 14:37
#81596 #81596
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Crian,19.April.2004, 10:56][quote=Knuddlbaer,14.04.2004, 14:06]Kann ich das Ziel dennoch erreichen ohne Global @INC zu ändern ?[/quote]
Eigentlich lautet die korrekte Antwort nein. Denn auch "use lib", das ich hier ganz klar über alle anderen genannten Lösungen favorisiere, ändert intern @INC.

Aber wenn Dir "ohne @INC selbst zu ändern" reicht, nimm use lib.[/quote]
Man koennte die Aenderung von @INC in einem eigenen Block mit "local @INC = ..." durchfuehren. Eine andere Moeglichkeit waere, einen absoluten Pfad und require zu verwenden, also etwa so:
Code: (dl )
1
2
3
4
5
BEGIN {
use FindBin;
require "$FindBin::Bin/My/Config/Module.pm";
My::Config::Module->import; # nur notwendig, wenn etwas importiert werden soll
}
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-04-14 16:06.