in reply to Multi-dimensional constants

You really need to do what Readonly does. Either use Readonly, or use Internals::SvREADONLY() which is the built-in function which Readonly wraps. Internals::SvREADONLY() can be kind of annoying when you need to apply it recursively to references though, especially if those references can include cycles.