Don't you need to export the constant?

Maybe this isn't the modern way to do it, but:

ratdog:tmp mike$ cat constant1.pm
package constant1;

require Exporter;
@ISA = qw( Exporter );
@EXPORT = qw( NUM_MUSKETEERS );

sub NUM_MUSKETEERS() {3}

1;
ratdog:tmp mike$ perl script.pl
mod1: 1
mod1: 2
mod1: 3
mod2: 1
mod2: 2
mod2: 3

Hope this helps,

Mike

On 2013-03-05, at 7:37 AM, "Greg London" <[email protected]> wrote:

> 
> OK, I've been coding since 5am, so I assume I'm just tired,
> but I can't figure this out.
> 
> I have a bunch of perl constants that I put in a module.
> I'm trying to use that module in two different places.
> I'm getting an error:
> 
> Bareword "CONSTANTNAME" not allowed while "strict subs" in use
> 
> 
> Here's a simplified testcase.
> 
> 
> FILENAME: constant1.pm
> ------------------------
> sub NUM_MUSKETEERS() {3}
> 
> 1;
> 
> 
> FILENAME: mod1.pm
> ------------------------
> 
> package mod1;
> 
> use warnings;
> use strict;
> 
> use constant1;
> 
> foreach my $i (1..NUM_MUSKETEERS){
>       print "mod1: $i\n";
> }
> 
> 1;
> 
> 
> FILENAME: mod2.pm
> ------------------------
> 
> package mod2;
> 
> use warnings;
> use strict;
> 
> use constant1;
> 
> foreach my $i (1..NUM_MUSKETEERS){
>       print "mod2: $i\n";
> }
> 
> 1;
> 
> 
> 
> FILENAME: script.pl
> -------------------------
> 
> #!/usr/bin/perl
> 
> use warnings;
> use strict;
> use mod1;
> use mod2;
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Boston-pm mailing list
> [email protected]
> http://mail.pm.org/mailman/listinfo/boston-pm

-- 

Mike Stok <[email protected]>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.





_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to