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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.