Just to elaborate a bit (I happened to read this chapter in PBP yesterday). He recommends Readonly because bareword constants (ala use constant) can't be interpolated. Moreover, Readonly allows lexically scoped variables to be created at runtime, but use constant creates package scoped variables at run time.