1 2 3 4 5 6
my $lib = '/home/lib'; use lib $lib; # geht schief, # $lib hat noch keinen Wert, wenn use ausgeführt wird, das kommt noch vorher # Aber es geht doch: eval "use lib '$lib'"; # das geht, warum? Siehe untenstehend:
2012-06-20T20:06:04 reneeFür so etwas gibt es BEGIN-Blöcke:
2012-06-20T23:05:22 reneeMan kann lib auch ein array übergeben.
1 2 3 4 5 6 7 8
#!/usr/bin/perl use strict; use warnings; my %env = ( perlmodule_eigen => ["/arbeit/perlmodule/","/arbeit/perlmodule/lib/perl/5.10.0"], ); use lib @{$env{perlmodule_eigen}};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#!/usr/bin/perl use strict; use warnings; my %env; BEGIN { %env = ( perlmodule_eigen => [ "/arbeit/perlmodule/", "/arbeit/perlmodule/lib/perl/5.10.0" ], ); } use lib @{$env{perlmodule_eigen}}; # ...
2012-06-21T07:11:53 topegSchreib mal
2012-06-21T07:15:33 bianca2012-06-21T07:11:53 topegSchreib mal
Würde mir nichts nützen, weil %env über einen sub Aufruf bestückt wird und die sub liegt in einem anderen Script, das vorher require't wird.
Daher brauche ich bitte eine andere Lösung.
Guest MuffiVerständnisfrage:
Warum used das andere Script die libs dann nicht?
Guest MuffiVerständnisfrage:
Warum used das andere Script die libs dann nicht?
1 2 3 4 5 6 7 8 9 10 11 12
#!/usr/bin/perl use strict; use warnings; my %env; BEGIN { use andere_lib; %env = andere_lib::befehl(); } use lib @{$env{perlmodule_eigen}}; # ...