Coming from Python and Java background this is confusing me a bit. I have the following files:
Constants.pm
Utils.pl
Main.pl
Constants.pm has global variables that I'd like to share with Main.pl and Utils.pl.
Utils.pl has helper subs that I'd like to share with Constants.pm and Main.pl
#################### Constants.pm
package Constants;
require "Utils.pl";
use Exporter;
our @ISA = 'Exporter';
my %config = parseConfigFile("File.properties");
our @EXPORT = qw($var1 $var2 $var3);
our ($var1, $var2, $var3);
$var1 = $config{var1};
$var2 = $config{var2};
$var3 = $config{var3};
#################### Utils.pl
package Utils;
use Constants;
sub parseConfigFile {};
sub someSub {};
#################### Main.pl
use Constants;
require "Utils.pl"
my $var = someSub($var1);
When I run Main.pl I'm getting someSub is undefined error
Please help, thanks!
EDIT: I haven't tried @ikegami's answer instead I just moved everything in Constants into Utils.pm and importing Utils by using 'use' in main.pl