sub birthday{ my $self = shift; $self->{age}++; if ($self->{age} == 12){ $self->{old_happiness} = $self->{happiness}; $self->{happiness} = -1; if (UNIVERSAL::isa($self,'GEEK')){ $self->{happiness} -= 3; } } if ($self->{age} == 19){ $self->{happiness} = $self->{old_happiness}; if (UNIVERSAL::isa($self,'GEEK')){ $self->{happiness} += 3; } } if ($self->{age} > 70){ $self->yell(@{$kids{damned}}); $self->complain(@{$politicians{damned}}); } } sub experiment{ my $self = shift; my $idea = shift; my $result; unless ($self->{tried}->{$idea}){ $result = $idea->($self); print "Cool, I didn't die\n"; $self->{happiness}++; if ($result > 0){ print "$idea produced positive result.\n"; $self->{things_to_do_again}->{$idea} = 'YES'; $self->{happiness}++; } else{ print "Note to self: what the hell were you thinking "; print "when you decided to $idea?\n"; $self->{things_to_do_again}->{$idea} = 'NO'; } $self->{tried}->{$idea}++; } return $result; }