sub addexit { my ($self, $exit, $direction) = @_; $self->{'_exits'}->{$direction} = $exit; } sub addhiddenexit { my ($self, $exit, $direction) = @_; $self->{'_hiddenexists'}->{$direction} = $exit; } sub showexits { my ($self) = @_; my $message = join "\n", 'The following exits are available:', map { ' $_\n' } sort keys %{ $self->{'_exits'} }; return $message; } sub exit { my ($self, $direction) = @_; if ( exists($self->{'_hiddenexits'}->{$direction}) ) { return $self->{'_hiddenexits'}->{$direction}; } if ( exists($self->{'_exits'}->{$direction}) ) { return $self->{'_exits'}->{$direction}; } return undef; }