> How do I determine if the cgi_prerun has already been set? If it is set
> how would I add my own "prerun" code to it?

If you're only interested in running your code without trampling on an
existing cgiapp_prerun, you have a couple of options.

The first option is to call your superclass's cgiapp_prerun from within
your own:

    package MyApp;
    use base 'MyProject';

    sub cgiapp_prerun {
        my $self = shift;

        # ...do my own prerun stuff

        # call existing cgiapp_prerun first
        $self->SUPER::cgiapp_prerun(@_);

        # ...do some more of my own prerun stuff

    }

And the second option (if you're using CGI::Application version 4.x) is
to install a prerun callback:

    package MyApp;
    use base 'MyProject';

    sub cgiapp_init {
        my $self = shift;

        $self->add_callback('prerun', \&my_prerun);
    }

    sub my_prerun {
        my $self = shift;

        # ...do my own prerun stuff

    }

Since you're not overwriting the existing cgiapp_prerun method, this
second strategy also allows you to tell whether or not there is a
cgiapp_prerun installed using 'can':

    if ($self->can('cgiapp_prerun')) {
        # yup, there's a cgiapp_prerun there!
    }


Michael


---
Michael Graham <[EMAIL PROTECTED]>


---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
              http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to