Catalystのバージョンを上げたら文句言われた。

Catalystのバージョンを5.71にしたらこんなメッセージが出るようになりました。

[warn] Used regexp fallback for $c->model('View::TT'), which found 'MyApp::Web::View::TT=HASH(0x21d44d0)'.
Relying on regexp fallback behavior for component resolution is unreliable and unsafe.
You probably meant $c->model('MyApp::Web::View::TT=HASH(0x21d44d0)') instead of $c->model{'View::TT'},
but if you really wanted to search, pass in a regexp as the argument like so: $c->model(qr/View::TT/)

Changesを見たところ、5.7099系で曖昧なコンポーネント指定で警告が出るようになったようです。

5.7099_01 2008-06-25 22:36:00
 - Refactored component resolution (component(), models(), model(), et al).
   We now throw warnings for two reasons:
   1) model() or view() was called with no arguments, and two results are returned
      -- set default_(model|view), current_(model|view) or current_(model|view)_instance
      instead
   2) you call a component resolution method with a string, and it resorts to a regexp 
      fallback wherein a result is returned -- if you really want to search, call the
      method with a regex as the argument

簡単にまとめるとこんな感じでしょうか。

default_(model|view)が欲しいのか?
current_(model|view)が欲しいのか?
current_(model|view)_instanceが欲しいのか?
はっきりしろ。

あと、欲しいコンポーネントが分かっているなら<del>フルネーム</del>で書け。
本当に探したいというのなら、文字列ではなく正規表現オブジェクトを書いて態度を示せ。

『フルネーム』とかどこにも書いてない(><)そうじゃなくて、MyApp::(?:Model|View)::(.*)の$1部分だけを書かないとwarningが出るみたいです。