Death to use constant! I've never seen the appeal of use constant, and with modern Perls, it's completely unnecessary.
I must say that you have strong arguments. Though I feel that constant.pm has some appeal. Besides, being "constants" really subs with an empty prototype and being subs with an empty prototype optimized away, they're really close to being real constants. Some times I roll my own pseudo-constants (when I need them to be closures), e.g.:
use File::Basename; { my $name=basename $0; sub USAGE () { "Usage: $name [options] <args>\n" } } die USAGE unless @ARGV;
You can't easily interpolate 'constants' as they lack the sigil, and because of that, they also get auto-quoted on the left of a fat arrow, or if it's the only thing in a hash index.
Excellent points! Especially the latter. As far as the first goes, I occasionally use constant.pm's constants, but I hardly ever felt the need to interpolate any.
Furthermore, if you see:
my $variable = ALL_CAPS + 1;
does that mean that $variable becomes one more than the constant ALL_CAPS, or does $variable get the result of ALL_CAPS(1)?
Here I disagree. It is obvious that it is "one more than the constant ALL_CAPS", for the same reason as above about empty prototypes.
Luckely, there's Readonly.pm:
use Readonly; Readonly my $PI => 4 * atan2(1, 1); Readonly my $DEBUG => 0;
Much better, IMO.
I don't happen to use it. But indeed it's a good module, I suspect that it may introduce some overhead and maybe for "DEBUG"-like stuff constant.pm may be preferable.

In reply to Re^2: All uppercase subs by blazar
in thread All uppercase subs by blazar

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.