#!/usr/bin/perl -w
######################################################################
# (c) Michael Schilli 1999
######################################################################

###########################################################
package Rad;                    # Rad-Klasse

sub new {                       # Neues Rad
    my $class = shift;
    my $self = {};
                                # Produktionsnummer 1 ... n
    $self->{'serial'} = defined $serial ? 
                                ++$serial : ($serial=1);

    bless $self, $class;
}

sub bewege {                    # Rad bewegen
    my $self = shift;

    print "Rad $self->{'serial'}: fährt!\n";
}


###########################################################
package Auto;                   # Auto-Klasse

sub new {                       # Neues Auto
    my $class = shift;
    my $self = {};

    foreach $i (1..4) {         # 4 Räder pro Auto
        push(@{$self->{"Räder"}}, Rad->new());
    }
    
    bless $self, $class;
}

sub fahre {                     # Auto bewegen
    my $self = shift;

                                # Räder bewegen
    foreach $i (@{$self->{"Räder"}}) {
        $i->bewege();
    }
}

###########################################################
package main;                   # Hauptprogramm

$auto = Auto->new();
$auto->fahre();
