On Wed, Mar 10, 2010 at 5:56 AM, HACKER Nora <nora.hacker@stgkk.at> 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 {
[snip]
> }
>
> fnc ();
> ~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~ ~ ~~
> ~ ~~ ~ ~~ ~ ~~ ~ ~
>
> Sadly, the final "use Env::Sourced..." command does not work. I suspect
Hi Nora,
Use has a special behavior that effectively wraps the module import in
a BEGIN block. See perldoc -f use for details.
This means that regardless of where you typed 'use Env::Sourced', the
module is being imported long before you declare $oraenv. In fact, you
should see errors about "BEGIN Failed" and "" not being exported.
You should really be using require, here, instead:
require Env::Sourced;
Env::Sourced->import($oraenv);
See perldoc -f require for details.
HTH,
-- jay
--------------------------------------------------
This email and attachment(s): [ ] blogable; [ x ] ask first; [ ]
private and confidential
daggerquill [at] gmail [dot] com
|