3. フックポイント my %INSTALLED_CALLBACKS = ( # hook name package sub init => { 'CGI::Application' => [ 'cgiapp_init' ] }, prerun => { 'CGI::Application' => [ 'cgiapp_prerun' ] }, postrun => { 'CGI::Application' => [ 'cgiapp_postrun' ] }, teardown => { 'CGI::Application' => [ 'teardown' ] }, load_tmpl => { }, error => { }, ); sub をオーバーライド実装することによって各フックポイントに登録される 4. 呼び出し順序 new init (cgiapp_init) setup r