admin返信Perlでセッション管理の話です。PHPだとセッションはsession_start()と$_SESSIONで楽に扱えますが、Perlではたまに苦しみます。今回はローカルのVistaのActivePerlでは正常に動くスクリプトをcoreserverにアップすると挙動が違うのです。クッキーは更新されているのに、セッションファイルが更新されません。クッキーがない場合はセッションファイルを作成しているのですが、それ以降の更新が行えません。クッキーだけ残してセッションファイルを削除するとセッションファイルの作成すらしてくれません。極めつけはアクセスすると1分ごとにセッションファイルが量産されていくのです。セッションの有効期限はそんなに短くありません。してかな~と、いじっているとどうやらリダイレクトが悪さをしているようです。ログイン処理でログインに成功するとログイン後のトップページへリダイレクトするわけですが、そうすると正常にセッションが更新されません。リダイレクトをやめて一度ページを表示するなど出力をクローズしておけば期待した動きをしてくれます。CGI::redirectとCGI::Sessionの相性が悪いという話は聞いたことがありません。自分の開発環境では一度もそういう現象には出くわしたことがありません。環境が違う点といえば・・・cgiwarpぐらいかな。