# Ofen.pm package Ofen; sub new { my $class = shift; # erstes - implizites - Argument my $self = { temperatur => 20, # Raumtemperatur klappe_auf => 0, # Klappe ist zu inhalt => undef }; # kein Inhalt bless $self, $class; # Instanz wird "gesegnet" } sub klappe_oeffnen { my $self = shift; if( $self->{temperatur} > 20 ) { print "Bitte vor dem Oeffnen der Klappe den Ofen abkuehlen!\n"; return; } $self->{klappe_auf} = 1; } sub klappe_schliessen { my $self = shift; $self->{klappe_auf} = 0; } sub fuellen_mit { my $self = shift; if( ! $self->{klappe_auf} ) { print "Bitte vor dem Fuellen die Klappe oeffnen!\n"; return; } $self->{inhalt} = shift; } sub aufheizen { my $self = shift; if( $self->{klappe_auf} ) { print "Bitte vor dem Aufheizen die Klappe schliessen!\n"; return; } $self->{temperatur} = shift; # Temperatur als Argument } sub abkuehlen { my $self = shift; $self->{temperatur} = 20; } 1;