#!/usr/bin/perl
package Quest;
sub new {
bless { type => "seek grail", who => "arthur and his knights" };
}
sub go_at_it {
goto CASTLE;
CASTLE: my $obstacle = new French (accent => "outrageous");
$obstacle->greet("Hello");
$obstacle->confess("I am King Arthur");
$obstacle->offer("join our quest") if $obstacle->request("shelter"
+);
$obstacle->open(CASTLE) && seek($obstacle->{master}{grail});
$obstacle->query("why",&Scalar::Util:blessed($obstacle),"in englan
+d?");
if ($! =~ /cow/){ die "Run away!" };
}
sub MYOB {
threaten(caller());
}
package French;
sub new {
my $pkg = shift;
bless { @_ }, $pkg;
}
sub greet {
return "'Allo. Whoo is eet?";
}
sub confess {
my $self = shift;
$self->{master} = "Guy de Loimbard";
return $self->{master};
}
sub offer {
my $grail = new Acme::Pretence::Grail;
tell $others, { $self->tell(caller(),$self->{master}{grail} == 1)
+};
return "He's already got one, you see?";
}
sub open {
if caller() eq 'english' return caller() = 'pig';
}
sub query {
caller()->MYOB();
}
sub threaten {
caller != frightening && caller == pig-dog; # must make bigint type
+ thing to substact dogs from pigs and stuff
close(caller()->{socket}), delete(caller()->{head});
kill FART => caller()->pid();
goto &Acolyte::Taunt;
}
Update: Dyslexia strikes again. nights were made knights.
-nuffin zz zZ Z Z #!perl |