型グロブにおける自戒

{
  no strict 'refs';
  *foo = sub {
    ...
  };
}

みたいにしてよくつかう型グロブですが,当然ながらそのネームスペースの空間を汚しているんですね。ですから,AUTOLOAD で新しい無名サブルーチンを追加すると,他のインスタンスからもアクセスできてしまいます。
ですから,自戒としてですが,

  • インスタンスメソッドのエイリアスを作りたいとき(Catalyst の req と request の関係のような)
  • そのクラスで一意な値が得られるものを(自動的に)追加したいとき(dan 氏作の Unicode::Char のような)
  • クラスメソッドを自動的に拡張したいとき
  • クラス自体を他のクラスによって拡張したいとき(Class::Accessor の mk_accessor() のような)

に限り使うようにするべし,と思いました。