# erstelle gleich mal 2 Instanzen # Fahrzeugführer ID wird durchgereicht $pkw = Auto->new(ffid => 1); $suv = Auto->new(ffid => 2); # Wenn der Fahrer gescheckt werden soll, ruft die Auto-Instanz eine eigene Methode $pkw->check; $suv->check; # Anwendungsklasse package Auto; # Argumente für die Konstruktoren nicht verwandter Klassen werden durchgereicht # für Debugzwecke wird die gesamte Konfiguration in der eigenen Instanz mitgeschleift sub new{ my $class = shift; my %cfg = ( ffid => '', # Fahrzeugführer ID # ggf. weitere Defaults @_); my $self = bless{ Fahrer => Fahrer->new( $cfg{ffid} ), Polizist => Polizei->new, CFG => \%cfg, ), $class; } # Delegation in eine eigene Methode # mit eigener Fehlerbehandlung sub check{ my $self = shift; my $fuehrerschein = $self->{Fahrer}->fuehrerschein(); $self->{Polizist}->check( $fuehrerschein) || $self->fehlerbehandlung(); }