I think you are going to need to provide more information. I've tried to reproduce the warning two different ways and cannot:
use strict; use warnings; use constant VERSION => "1.5.7"; print VERSION; print "\n";
prints "1.5.7", without warnings.
Moving the statement to an include file like this:
use strict; use warnings; package Foo; use constant VERSION => "1.5.7"; return 1;
and including it with BEGIN {...} does the same thing: print "1.5.7" with no warnings.
What version of Perl are you using? What does your include file look like? And what are you actually doing? The warning you are seeing would indicate that the place where you are using "VERSION" is a place where Perl is expecting to see a subroutine or code reference rather than a string or other constant value. From perldiag:
# Bareword "%s" not allowed while "strict subs" in use
(F) With "strict subs" in use, a bareword is only allowed as a subroutine identifier, in curly brackets or to the left of the "=>" symbol. Perhaps you need to predeclare a subroutine?
You may also find this post Re: Bareword "FILE" not allowed while "strict subs" helpful.
Best, beth
In reply to Re: Using constants in multiple scripts
by ELISHEVA
in thread Using constants in multiple scripts
by vancetech
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |