OK, here you go. A few adjustments: ConfigThisJunk.pm is actually ExportScalar.pm and the script name is ImportTest.pl. The package is in the folder 'D:/Marcos/Perl/MSB/SS' in my Windows machine. Hence, your line got modified to:
perl -wle"use lib 'D:/Marcos/Perl/MSB'; use SS::ExportScalar; print $INC{'SS/ExportScalar.pm'};"
and that resulted in
D:/Marcos/Perl/MSB/SS/ExportScalar.pm
And then the results of the type statements:
type ExportScalar.pm
use strict;
use warnings;
use Exporter;
our @ISA = qw( Exporter );
our @EXPORT_OK = qw( DEBUG );
our $DEBUG = 1;
sub DEBUG {
if (@_) { $DEBUG = shift; }
return $DEBUG;
}
1;
type ImportTest.pl
#!/usr/bin/perl -w
use strict;
use warnings;
use lib 'D:/Marcos/Perl/MSB';
use SS::ExportScalar qw( DEBUG );
my $x = 123;
print("debug: x is $x\n") if DEBUG;
Now I execute it:
perl ImportTest.pl
Bareword "DEBUG" not allowed while "strict subs" in use at ImportTest.
+pl line 7.
Execution of ImportTest.pl aborted due to compilation errors.
Now, I change the strict statement in ImportTest.pl:
type ImportTest.pl
#!/usr/bin/perl -w
use strict qw (vars refs);
use warnings;
use lib 'D:/Marcos/Perl/MSB';
use SS::ExportScalar qw( DEBUG );
my $x = 123;
print("debug: x is $x\n") if DEBUG;
perl ImportTest.pl
Bareword found in conditional at ImportTest.pl line 7.
debug: x is 123
X:^P
|