Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: My Story

by Petruchio (Vicar)
on Jan 14, 2001 at 21:03 UTC ( #51770=note: print w/replies, xml ) Need Help??

in reply to My Story

Here are some methods for you.

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; }

Note that trying new things is condusive to happiness, and that you can't do this unless you use Tie::RefHash; This is where most non-geeks go wrong. Truth is, most of them would be miserable if sex() weren't considerably simpler to implement.

Also note that calling experiment() with the wrong parameters can forestall further calls to birthday(). It is suggested, therefore, that you use caution;