Hi Nora,

On Wednesday 10 Mar 2010 12:56:52 HACKER Nora wrote:
> Hi list,
> 
> I want to use the Env::Sourced module for setting some environment
> variables depending on the Oracle version of a certain database:
> 
> ~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~
> ~ ~~ ~ ~~ ~ ~~ ~ ~
> #!/usr/bin/perl -w
> use strict;
> use warnings;
> 
> sub fnc {
>         my $oraenv;
>         my $oratabpfad="/opt/ora/9.2.0.8";
>         if ($oratabpfad =~ /9.2.0.8/) {
>                 print "--- IF ---\n";
> 
> $oraenv="/opt/data/magna/viamg1/umgebungen/config/ora9208.env";
>                 print "OraEnv: $oraenv\n";
>         } else {
>                 print "--- ELSE ---\n";
> 
> $oraenv="/opt/data/magna/viamg1/umgebungen/config/ora92.env";
>                 print "OraEnv: $oraenv\n";
>         }
> 
>         use Env::Sourced "$oraenv";
>         system 'env |grep ORA';
> }
> 
> fnc ();
> ~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~
> ~ ~~ ~ ~~ ~ ~~ ~ ~
> 
> Sadly, the final "use Env::Sourced..." command does not work. I suspect
> the variable to be the problem but haven't yet found a way how to pass
> the value to the "use" command properly. No quotes at all or double
> quotes (as in code snippet) return no error, but the variables are not
> set either. Single quotes or backticks return an error, of course. But
> what's left, then?
> 
> 
> I have an additional question: I also tried a solution like this:
> 
> if (...) {
>       use Env::Sourced "/path/to/file.env";
> } else {
>       use Env::Sourced "/path/to/file2.env";
> }
> 

use is a compile-time statement and will always be run and evaluated at 
compile-time. If you want it to be at run-time you can do:

<<<<
require Env::Sourced;
Env::Sources->import($path_to_file);
>>>>

Regards,

        Shlomi Fish

> but this didn't work correctly as well, always the second file (from the
> ELSE) was sourced. Am I guessing right that the latter file was sourced
> because of the ambiguous "use" although this would not come to effect
> during script execution? Could someone explain to me kindly why exactly
> that is so?
> 
> And, of course, if my questions should be better addressed to the owner
> of the module, please give me a hint.
> 
> 
> Regards,
> Nora

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
List of Portability Libraries - http://shlom.in/port-libs

Deletionists delete Wikipedia articles that they consider lame.
Chuck Norris deletes deletionists whom he considers lame.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to