in reply to Enumerations

People often just use hashes for this kind of thing, but they don't give you protection from typos. For that, you can use enum, though it has similar issues to the constant pragma. You can also use something like Tie::SecureHash.