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


in reply to Re: require, globals, and some various mayhem
in thread require, globals, and some various mayhem

Cheers, I will try that. Any idea why it worked properly before? Maybe I hallucinated the whole thing.
  • Comment on Re^2: require, globals, and some various mayhem

Replies are listed 'Best First'.
Re^3: require, globals, and some various mayhem
by perrin (Chancellor) on Jun 06, 2009 at 12:50 UTC
    If you had them in separate files before, it couldn't have worked. Maybe you weren't running the code you thought you were.
Re^3: require, globals, and some various mayhem
by Marshall (Canon) on Jun 06, 2009 at 17:58 UTC
    I suspect for this to work well, you are going to need to "use" instead of "require". I might be wrong, but I'm sure approach below will work. Here is some boiler-plate for you. Make a file called my_subs.pm, and stick modified version of this in there. The "use my_subs" will cause this .pm code to run before your program and the globals will exist.
    #file my_subs.pm use strict; use warnings; package my_subs; use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION); use Exporter; our $VERSION=1.0; our @ISA = qw(Exporter); our @EXPORT = qw(GLOBAL1, GLOBAL2, XYZZY); our @EXPORT_OK = qw(); our $GLOBAL1 = 23; our $GLOBAL2; sub XYZZY{} 1; # important!!! every .pm file must return "true", 1; is # easiest way to do that! ###### in main program ##### use my_subs; # do something with XYZZY(a,b); # my $a=$GLOBAL1 +23;