catalyst default : Private

sub default : Private {
  #  どれにも一致しないリクエストパスの場合呼び出されるデフォルト処理関数。トップページの処理など。
  my ($self, $c) = @_;

  $c->stash->{template} = MyApp->config->{template}->{index};
  $c->forward('MyApp::View::TT');
}

default : Private
他にマッチするアクションがない場合に呼び出されます。たとえば、メイン・アプリケーションの一般的なフロントページを表示するときや、個々のコントローラのエラー・ページを表示するときに利用できます。

とあるけど、マッチするアクションがあった場合でも、

[Sun May 14 12:49:34 2006] [catalyst] [debug] Rendering template "templates/toppage.tt"
[Sun May 14 12:49:34 2006] [catalyst] [debug] Rendering template "templates/login.tt"

というふうに必ずdefault : Privateが呼ばれて、テンプレートをレンダリングしてる。
(少なくともcatalystのログでは)

無駄だと思うんだけど トップページの処理はどうすればいいんだろう。
これでいいんだろうか。

追加・・

いいわけないって事で
defaultでやらないでendで

sub end : Private {
  #  指定した場合、すべてのリクエストパス系処理の最後に必ず呼び出される
  my ($self, $c) = @_;
  $c->forward('MyApp::View::TT');
}

これでレンダリングされなくなったぞ