Hi Madi,<br><br>I&#39;ve seen a few replies to your posting but none so far actually talk about the idea behind &quot;is a&quot;, which it seemed to me you were looking for.<br><br>In object oriented programming, the two major kinds of relationships classes and objects might have with each other is the &quot;is a&quot; relationship (i.e. inheritance) and the &quot;has a relationship&quot; (i.e. composition).<br>
<br>By declaring class Dog to have an is-a relationship with class Mammal, you are saying that Dogs have all the properties that Mammals do (for instance, live birth of young, production of milk, hair/fur, kinship with Dan Fielding), plus they have some specific properties that only Dogs have (barking, chasing after Frisbees, being man&#39;s best friend).&nbsp; [You could go a bit further and state that no animal can be created _directly_ as being a Mammal;&nbsp; animals can only be specific types of Mammals.&nbsp; As such, you could consider Mammal to be an interface specification class (aka virtual class), but this is a more advanced concept that we don&#39;t really need to go into now.)<br>
<br>In English, you would read this relationship as &quot;a dog is a mammal.&quot;&nbsp; In Perl, you would say:<br><br>package Dog;<br>use base qw (Mammal);<br>
<br>But really, Dogs are Canines, so you&#39;d probably say Dog is-a Canine, and you&#39;d pick up on being a Mammal by virtue of Canine is-a Mammal, and Mammal is-a Chordate, and Chordate is-a Animal, and Animal is-a Life.&nbsp; Is-a relationships often chain their way to some level of complexity.<br>
<br>package Life;<br># in Perl, implicitly uses the base class &quot;UNIVERSAL&quot;<br>.<br>
. # DNA, i haz it!<br>
.<br>
package Animal;<br>

use base qw (Life);<br>


.<br>
.<br>
.<br>
package Mammal;<br>

use base qw (Animal);<br>


.<br>
.<br>
.<br>
package Canine;<br>

use base qw (Mammal);<br>


.<br>
.<br>
.<br>
package Dog;<br>

use base qw (Canine);<br>


.<br>
.<br>
.<br>
1;<br><br>I&#39;ve seen some talk of multiple inheritance.&nbsp; This is technically possible in Perl but often controversial.&nbsp; That would be like saying Dog is-a Canine, but Dog is-a Pet also.&nbsp; (Rocks occasionally are pets too, as are peeves.)&nbsp; In Perl this would be:<br>
<br>package Dog;<br>use base qw (Canine Pet);<br>.<br>.<br>.<br>1;<br><br>Old-school, you&#39;d establish is-a relationships by manipulating the @ISA array.<br><br>Has-a relationships is where the thing possesses another thing.&nbsp; Dogs have eyes.&nbsp; They have tails too.&nbsp; They have collars and leashes.&nbsp; Each of these things can be had by wildly different other things (e.g. octopuses, jet airplanes, B&amp;D fetishists) so these objects can be free-floating things that you can tack onto the side of anything else.&nbsp; They can have their own is-a relationship hierarchies too.&nbsp; There isn&#39;t a syntax in the language that specifically implements has-a relationships.&nbsp; You just kind of throw those into your objects.<br>
<br>package Dog;<br><br>
use base qw (Canine Pet);<br>
<br>use Eye;<br>use Tail;<br>use NaughtyNaughty;<br><br>sub new {<br>&nbsp;&nbsp;&nbsp; my $class = shift;<br>&nbsp;&nbsp;&nbsp; my $eye = Eye-&gt;new();<br>
&nbsp;&nbsp;&nbsp; my $tail = Tail-&gt;new();<br>
&nbsp;&nbsp;&nbsp; my $collar = NaughtyNaughty-&gt;new();<br>
&nbsp;&nbsp;&nbsp; my $self = bless { eye =&gt; $eye, tail =&gt; $tail, collar =&gt; $collar }, $class;<br>&nbsp;&nbsp;&nbsp; return $self;<br>
}<br><br>.<br>
.<br>
.<br>
<br>1;<br>
<br>Cheers,<br>&nbsp;- Richard<br><br><div class="gmail_quote">On Mon, Jul 14, 2008 at 2:53 PM, Madison Kelly &lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi all,<br>
<br>
 &nbsp;I am working on some docs, and noticed that a module is called via:<br>
<br>
use base qw(Net::DBus::Object);<br>
<br>
 &nbsp;I am trying to understand the &#39;use base&#39; syntax, and all I&#39;ve been able to find in perldoc is in perlmodlib:<br>
<br>
base &nbsp; &nbsp; &nbsp; &nbsp;Establish IS-A relationship with base classes at compile time<br>
<br>
 &nbsp;Can someone either explain to me what this means, or better, point me at what docs explain &quot;IS-A relationship&quot;s? I hate &quot;just accepting&quot; that something is at it is. Probably why I never get anything actually done. :)<br>

<br>
 &nbsp;Thanks as always!<br>
<br>
Madi<br>
_______________________________________________<br>
toronto-pm mailing list<br>
<a href="mailto:toronto-pm@pm.org" target="_blank">toronto-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/toronto-pm" target="_blank">http://mail.pm.org/mailman/listinfo/toronto-pm</a><br>
</blockquote></div><br>