空のプロトタイプ付きサブルーチンはコンパイル時に展開されるので
効率はいい。constant プラグマはいわばその構文糖。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlsub.html#Constant_Functions

変数展開コンテキストに埋め込みたいなら、リテラルのリファレンスに
名前を付ける方法もある。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html#Symbol_Tables

パッケージグローバルな my 変数も、そのパッケージ内でうっかり
書き換える心配が無いのなら別に悪い選択肢じゃない。