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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |