in reply to What's the Right Way to declare constants in packages?

The real trade off is that constants declared as subs are, well, subs. They aren't scalars, you can't put them in strings and such. The real gain though, is that they are inlined. So if you say:
use strict; #DUH! use constant SWITCH => 0; # off if( SWITCH ) { # do some stuff }
The entire if(){} statement gets dropped like a comment. Pretty cool, eh?
Note:I'm not implying that you should use that technique to embed comments, but it is very useful for things like debug-code, stubing code (for test), OS dependent code ($^O), etc....