<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//DE"><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><TITLE>Message</TITLE></HEAD><BODY><P>On Mon, 23 Feb 2009, at 21:58:47, Steffen Schwigon &lt;<A href="mailto:ss5@renormalist.net">ss5@renormalist.net</A>&gt; wrote:</P>
<P>&gt;Aristoteles Pagaltzis &lt;<A href="mailto:pagaltzis@gmx.de">pagaltzis@gmx.de</A>&gt; writes:</P>
<P>&gt; Sorry daß ich hier so heftig auftrete, aber dieser Mensch scheint<BR>&gt; wirklich Quark mit Käse aufgetischt zu haben.</P>
<P>#!/usr/bin/perl -w<BR>#*** breakfast.pl ***#<BR>#-------------------------------------------------<BR>&nbsp;package ClassMakeBreakfast;<BR>&nbsp;use strict;<BR>&nbsp;sub new<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($class, %args) = @_;<BR>&nbsp;&nbsp;my $self = { };<BR>&nbsp;&nbsp;bless($self, ref($class) || $class);<BR>&nbsp;&nbsp;$self-&gt;_Initialize(%args);<BR>&nbsp;&nbsp;return $self;<BR>&nbsp;&nbsp;}<BR>#-------------------------------------------------<BR>&nbsp;package ClassMilk;<BR>&nbsp;@ClassMilk::ISA = qw(ClassMakeBreakfast);<BR>&nbsp;sub _Initialize<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($self, %args) = @_;<BR>&nbsp;&nbsp;# ...<BR>&nbsp;&nbsp;}<BR>#-------------------------------------------------<BR>&nbsp;package ClassCheese;<BR>&nbsp;@ClassCheese::ISA = qw(ClassMakeBreakfast ClassMilk);<BR>&nbsp;sub _Initialize<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($self, %args) = @_;<BR>&nbsp;&nbsp;# ...<BR>&nbsp;&nbsp;}<BR>#-------------------------------------------------<BR>&nbsp;package ClassCurd;<BR>&nbsp;@ClassCurd::ISA = qw(ClassMakeBreakfast ClassMilk);<BR>&nbsp;sub _Initialize<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($self, %args) = @_;<BR>&nbsp;&nbsp;# ...<BR>&nbsp;&nbsp;}<BR>#-------------------------------------------------<BR>&nbsp;package ClassSandwich;<BR>&nbsp;@ClassSandwich::ISA = qw(ClassMakeBreakfast ClassCheese ClassCurd);<BR>&nbsp;sub _Initialize<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($self, %args) = @_;<BR>&nbsp;&nbsp;$self-&gt;$_(%args) for(map { $_-&gt;can('_Initialize') || () } @ClassSandwich::ISA);<BR>&nbsp;&nbsp;# ...<BR>&nbsp;&nbsp;}<BR>&nbsp;sub Breakfast<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;my ($self, %args) =&nbsp; @_;<BR>&nbsp;&nbsp;my $count = defined($args{-count}) ? delete($args{-count}) : 0;<BR>&nbsp;&nbsp;print("Eating $count sandwichsn") if($count);<BR>&nbsp;&nbsp;}<BR>&nbsp;#------------------------------------------------<BR>&nbsp;package main;<BR>&nbsp;my $sandwich = ClassSandwich-&gt;new();<BR>&nbsp;$sandwich-&gt;Breakfast(-count =&gt; 2);<BR>#-------------------------------------------------</P>
<P>&nbsp;Denke OO,<BR>&nbsp;Lebe OO,<BR>&nbsp;Handle OO,<BR>&nbsp;und es lernt sich wie von selbst ... :-)<BR>&nbsp;<BR>&nbsp;Torsten<BR></P>


<br>--<br><!-- AdSpace freenet EMO Webmail Banner --> 
<a href="http://adserver.freenet.de/click.ng/site=fn&prod=chetools&kat=inhalte&tbl=webmail&ppos=14&TransactionID=123580332068740&rgtg=256" target="_blank"><img src="http://adserver.freenet.de/image.ng/site=fn&prod=chetools&kat=inhalte&tbl=webmail&ppos=14&TransactionID=123580332068740&rgtg=256" border="0"></a><!-- / AdSpace -->
</BODY></HTML>