Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Overloading CGI::redirect

by perlmonkey (Hermit)
on Apr 10, 2004 at 05:23 UTC ( #344083=note: print w/ replies, xml ) Need Help??


in reply to Overloading CGI::redirect

As others have said, use SUPER. A more obscure option is to alias the CGI::redirect function, something like:

use base 'CGI'; BEGIN { *cgi_redirect = \&CGI::redirect; } sub redirect { my($self,$uri) = @_; $self->cgi_redirect($uri); }
Update:
I forgot to mention that instead of SUPER, you can also always use the full class name. You were close, but instead of CGI::redirect($self, $uri) you should use $self->CGI::redirect($uri).

This is useful (necessary) if you use multiple inheritance and both parent classes defined the same subroutine. So if you had:
package BaseA; sub func {} package BaseB; sub func {}; package Derived; use base qw(BaseA BaseB); sub func { my $self = shift; $self->SUPER::func(); # calls BaseA::func $self->BaseA::func(); # same $self->BaseB::func(); # only way to access BaseB::func }


Comment on Re: Overloading CGI::redirect
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://344083]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (14)
As of 2014-12-18 12:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (51 votes), past polls