>>734
コード晒してみて良いでしょうか。
細かい点はさておいて、MVC的に合ってるのか確認したいのです。
肝心のモジュールの中身が一番いい加減だとは思うのですが・・・
改行数の都合上、色々と端折ります。
use CGI;
use My::Module; # My::Definitionを継承、ret_xxxxメソッドが該当
use My::Session;

my $session = My::Session->new();
my $sess  = $session->chk_session; # if session expired, return undef.

if (!$sess) {
  $session->loginForm;
} elsif ($sess) {
  my $q     = CGI->new();
  my $param1 = $q->param('param1');
  my $mod   = My::Module->new();
  my $tx    = $mod->ret_Xslate;
  my $dbh   = $mod->ret_DBI;
  if (!$param1) {
    my $contents = $tx->render( 中略 );
    print $contents;
  } else {
    # 大きく中略。$returnを取得するSQL文を書いてる。
    my $contents = $tx->render("hoge.tmpl", {
      title  => "fuga",
      value => $return;
    });
    print $contents;
  }
}