[Dresden-pm] Objektorientierung unter Perl
create-soft at freenet.de
create-soft at freenet.de
Fr Feb 27 22:42:00 PST 2009
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.pm.org/pipermail/dresden-pm/attachments/20090228/f4ff941f/attachment.html>
-------------- nächster Teil --------------
On Mon, 23 Feb 2009, at 21:58:47, Steffen Schwigon <ss5 at renormalist.net> wrote:
>Aristoteles Pagaltzis <pagaltzis at gmx.de> writes:
> Sorry daß ich hier so heftig auftrete, aber dieser Mensch scheint
> wirklich Quark mit Käse aufgetischt zu haben.
#!/usr/bin/perl -w
#*** breakfast.pl ***#
#-------------------------------------------------
package ClassMakeBreakfast;
use strict;
sub new
{
my ($class, %args) = @_;
my $self = { };
bless($self, ref($class) || $class);
$self->_Initialize(%args);
return $self;
}
#-------------------------------------------------
package ClassMilk;
@ClassMilk::ISA = qw(ClassMakeBreakfast);
sub _Initialize
{
my ($self, %args) = @_;
# ...
}
#-------------------------------------------------
package ClassCheese;
@ClassCheese::ISA = qw(ClassMakeBreakfast ClassMilk);
sub _Initialize
{
my ($self, %args) = @_;
# ...
}
#-------------------------------------------------
package ClassCurd;
@ClassCurd::ISA = qw(ClassMakeBreakfast ClassMilk);
sub _Initialize
{
my ($self, %args) = @_;
# ...
}
#-------------------------------------------------
package ClassSandwich;
@ClassSandwich::ISA = qw(ClassMakeBreakfast ClassCheese ClassCurd);
sub _Initialize
{
my ($self, %args) = @_;
$self->$_(%args) for(map { $_->can('_Initialize') || () } @ClassSandwich::ISA);
# ...
}
sub Breakfast
{
my ($self, %args) = @_;
my $count = defined($args{-count}) ? delete($args{-count}) : 0;
print("Eating $count sandwichs\n") if($count);
}
#------------------------------------------------
package main;
my $sandwich = ClassSandwich->new();
$sandwich->Breakfast(-count => 2);
#-------------------------------------------------
Denke OO,
Lebe OO,
Handle OO,
und es lernt sich wie von selbst ... :-)
Torsten
Gesendet von freenetMail-
Mehr als nur eine E-Mail-Adresse
http://email.freenet.de/dienste/emailoffice/produktuebersicht/basic/mail/index.html?pid=6828
Mehr Informationen über die Mailingliste Dresden-pm