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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.