Re: My Story

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

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;

Create A New User
Node Status?
node history
Node Type: note [id://51770]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2018-11-16 05:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My code is most likely broken because:

Results (193 votes). Check out past polls.

Notices?