User since
2005-10-26
8
Artikel
BenutzerIn
Hallo zusammen!
ich habe ein skript das umgebungsabhängig(Produktion,Test) ist.
in diesem rufe ich mit use lib einige module auf.
jetzt soll aber je nach umgebung ein anderer pfad verwendet werden.
deshalb meine frage: "wie kann ich use lib eine variable, die den Pfad enthält, übergeben"??
vielen dank schonmal!
User since
2003-08-04
14371
Artikel
ModeratorIn
Genau so wie Du es geschrieben hast:
use lib $pfad; Wenn Du vorher erstnoch den Pfad bestimmen musst, dann musst Du das mit dem BEGIN-Block machen:
BEGIN{
my $pfad = bestimme_pfad();
use lib $pfad;
}
User since
2003-11-28
3645
Artikel
ModeratorIn
Wobei das "use lib" nach dem BEGIN-Block folgen müsste, oder?
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=ptk,10.03.2006, 13:45]Wobei das "use lib" nach dem BEGIN-Block folgen müsste, oder?[/quote]
muss es?
Ich glaube nicht, Tim!
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=renee,10.03.2006, 14:17]jepp, hast recht...
#!/usr/bin/perl
use strict;
use warnings;
my $pfad;
BEGIN{
$pfad = 'C:\cpan\WWW-ConfixxBackup-0.01\lib';
}
use lib $pfad;
use WWW::ConfixxBackup;
[/quote]
in dem Fall ist der BEGIN-Block unnötig.
User since
2003-11-28
3645
Artikel
ModeratorIn
Der BEGIN-Block ist notwendig, weil Zuweisungen normalerweise zur Laufzeit passieren, nicht zur Compilezeit. Hier ein Dump von @INC ohne und mit BEGIN-Block
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$VAR1 = [
undef,
"/usr/perl5.8.0/lib/5.8.0/i386-freebsd-64int",
"/usr/perl5.8.0/lib/5.8.0",
"/usr/perl5.8.0/lib/site_perl/5.8.0/i386-freebsd-64int",
"/usr/perl5.8.0/lib/site_perl/5.8.0",
"/usr/perl5.8.0/lib/site_perl",
"."
];
$VAR1 = [
"C:\\cpan\\WWW-ConfixxBackup-0.01\\lib",
"/usr/perl5.8.0/lib/5.8.0/i386-freebsd-64int",
"/usr/perl5.8.0/lib/5.8.0",
"/usr/perl5.8.0/lib/site_perl/5.8.0/i386-freebsd-64int",
"/usr/perl5.8.0/lib/site_perl/5.8.0",
"/usr/perl5.8.0/lib/site_perl",
"."
];
User since
2003-08-04
7321
Artikel
ModeratorIn
ach ja stimmt. naja, 1 von 2 richtig! :) Hätt ich es getestet, hätt ich auch ein Empty compile time value given to use lib ... bekommen
User since
2003-08-06
2257
Artikel
ModeratorIn
[quote=esskar,11.03.2006, 14:35]Hätt ich es getestet, hätt ich auch ein
Empty compile time value given to use lib ... bekommen[/quote]
Wärst Du mal auf dem
8. Deutschen Perl-Workshop gewesen, dann wär Dir das nicht passiert. ;)
User since
2003-08-04
14371
Artikel
ModeratorIn
Der sehr interessante Vortrag von Thomas Klausner ist auch im Internet zu finden:
http://domm.zsi.at/talks/2006_bochum_using_use/