When you 'use base' you inherit. That is, think of it as, your present module becomes that module.
Let's imagine we write CGI/Mor.pm :
package CGI::Mor; use base 'CGI'; 1;
Then when I do this: my $cgi = new CGI::Mor;
The object $cgi behaves exactly as if I had done: my $cgi= new CGI; because your new package .. sort of.. cloned let's say- CGI.pm.
If you do this:
package CGI::Mor; use base 'CGI'; use strict; sub footermod { my $self = shift; my $arg = shift; $arg ||= 'default arg'; my $out = $self->p( $self->small('welcome to this message! '. $arg ) ); return $out; } 1;
And then in your script:
use CGI::Mor; my $cgi = new CGI:Mor; print $cgi->footermod;
it would print "welcome to this message! default arg"
You can see how useful this is to add new functionality to existing modules. Which is why it can be useful to make modules do few tasks very well.
In reply to Re: Twofer: 'use base' vs 'use'; and SuperSearch
by leocharre
in thread Twofer: 'use base' vs 'use'; and SuperSearch
by throop
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |