in reply to Crazy constant question...

XY check: Are these trying to emulate enumerated types? If not, might hashes make more sense?

Could you not do something like:

my %consts = (FOO => 42, BAR => 99); my %names = reverse %consts;
then make the hashes read only or base your use constants on them?