I think you can make it work if you derive your base class from an exporting-capable module, like Exporter. In this case, declare an @EXPORT array with the things you want the children classes to know about. In the code of the child class, invoke import() so that FOO can be known without further qualification.

package ParentClass; use base qw(Exporter); # requires and adds Exporter to @ISA BEGIN { our @EXPORT = qw(FOO); } # what must be known elsewhere use constant FOO => 'foo'; package ChildClass; use base 'ParentClass'; BEGIN { P->import(); } # import FOO sub doStuff { my ($self, @otherArguments) = @_; print FOO; # should work just fine print $self->FOO; # just the same as above }

Update: jettero and diotalevi pointed the flaws in my first versions of this answer. It was much harder than I thought at first to get it right. The BEGIN's blocks are absolutely necessary to make it work.


In reply to Re: Constants and Subclasses... by ferreira
in thread Constants and Subclasses... by t'mo

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.