package Soldier; use constant NAME => 0; use constant RANK => 1; use constant SERIAL => 2; sub new { my $class = shift; $class = ref($class) || $class; my $self = [ "", "Private", 000 ]; bless($self, $class); return $self; } sub name { my $self = shift; if (@_) { $self->[NAME] = shift; } return $self->[NAME]; } # similar methods for RANK and SERIAL