in reply to looping over constant data structure references

Future compatibility is not really an issue at least if you stick to Perl5, but if you're really that nervous about it, how about @{(MSG_DATA)} ? Note also that @{&MSG_DATA} will disable Perl's constant sub optimization (and will make it possible (if unlikely) for the value to change at runtime if the sub is redefined, as well).

Makeshifts last the longest.