http://qs321.pair.com?node_id=707628


in reply to Re: our scope and packages
in thread our scope and packages

Thank you; it all sounds highly feasible. However, this is unfamiliar territory. Should I be putting this statement *prod = in the originating file (it isn't an OO package - at least I don't think it is) where %prod is populated or should I be putting it in the package that currently can't access it? Or both?

thanks a lot for your help.

Replies are listed 'Best First'.
Re^3: our scope and packages
by tilly (Archbishop) on Aug 28, 2008 at 23:23 UTC
    In the package that currently can't access it.

    Actually the really right way to do it is to move %prod into a configuration module that might look like this:

    package My::Configuration; use strict; use Export qw(import); our @EXPORT_OK = qw(%prod); our %prod = ( ... ); 1;
    and then somewhere in main and in your other package insert the line:
    use My::Configuration qw(%prod);
    Doing that you won't even need the our declaration because importing it declares it.
      Thanks, you've no idea how happy fixing this has made me. I could kiss you. (but this might be a result of living for so long with hundreds of men in brown gowns).
        Heh. You might want to work on your eyesight. I'm a guy. (Tilly is my last name, not my first.)