How about variables that contain constant values
Simply build a function that returns the variables.
You could, but it's perfectly fine to export constants. I'd make them look like constants, though. In fact, I don't see why we couldn't make them actual constants.
package PkgA;
use strict;
use warnings;
use Exporter qw( import );
my %max_text_constants;
my @max_text_constants;
BEGIN {
%max_text_constants = (
TINY_TEXT_MAX_LEN => 100,
TEXT_MAX_LEN => 200,
MEDIUM_TEXT_MAX_LEN => 500,
LONG_TEXT_MAX_LEN => 2000,
);
@max_text_constants = keys(%max_text_constants);
}
use constant \%max_text_constants;
our @EXPORT_OK = (
@max_text_constants,
...
);
our @EXPORT_TAGS = (
max_text => \@max_text_constants,
...
all => \@EXPORT_OK,
);
1;
use PkgA qw( LONG_TEXT_MAX_LEN );
use PkgA qw( :max_text );
use PkgA qw( :all );
|