#! 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 Sophmore", "Havard Junior", "Harvard Senior", "Employed", "CEO"], 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}]; } }