Ok, here's TRY 2. I'm almost 100% percent sure this is
real object orientation. It's a package called AlienFarm that can make, teach, and give powers to aliens.
(Constructed using the
birth method.)
#! Perl
use strict;
{
package AlienFarm;
sub birth {
my $self=shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime
+(time);
my $name=shift;
$mon+=1;
$year+=1900;
my $birth = "$mon $mday, $year";
my $alien = bless {
NAME => "$name",
BIRTH => "$birth",
POWERS => [ ],
BRAINS => ["pre-school", "1st grade", "2nd grade",
"3rd grade", "4th grade", "5th grade",
"6th grade", "7th grade", "8th grade",
"9th grade", "10th grade", "11th grade",
"12th grade", "Harvard Freshman", "Harvard Sophmo
+re",
"Havard Junior", "Harvard Senior", "Employed", "C
+EO"],
LEVEL => "-1" }, "AlienFarm";
}
sub birthday {
my $decide=shift;
ref $decide ? $decide->{BIRTH} : "an unknown time";
}
sub name {
my $decide=shift;
ref $decide ? $decide->{NAME} : "an unknown name";
}
sub set_power {
my $self=shift;
my $power=shift;
push @{$self->{POWERS}}, $power;
}
sub get_powers {
my $self=shift;
my $num=1;
foreach my $power ( @{$self->{POWERS}} ) {
print "$num) $power\n";
$num++;
}
print "\n";
}
sub teach_lessons {
my $self=shift;
my $level = $self->{LEVEL};
$level+=1;
$self->{LEVEL} = $level;
return "Lesson taught. Level: ". $self->{BRAINS}[$self->{LEVEL}] .
+"\n";
}
sub schooling {
my $self = shift;
return $self->{BRAINS}[$self->{LEVEL}];
}
}
> munchie, the number munchin newb
Llama: The other other white meat!
(you had to be there :-P)