sub toggle_door
{
my $door_ref = shift;
if( $$door_ref eq 'Closed' )
{
$$door_ref = 'Open';
} else {
$$door_ref = 'Closed';
}
return $$door_ref;
}
####
sub toggle_door {
my ($door_ref) = @_;
state $transition = { qw(Open Closed Closed Open) };
$$door_ref // die 'undefined door state';
exists $transition->{$$door_ref}
or die qq{unknown door state '$$door_ref'};
return $$door_ref = $transition->{$$door_ref};
}
####
sub toggle_door {
state $transition = { qw(Open Closed Closed Open) };
$_[0] // die 'undefined door state';
exists $transition->{$_[0]}
or die qq{unknown door state '$_[0]'};
return $_[0] = $transition->{$_[0]};
}