 
Because you're going to play nice and always call the getters and setters instead of reaching into the data structure, getters and setters are called frequently. To save a teeny-tiny bit of time, you might see these getters and setters written as:
## in Animal
sub color {
  $_[0]->{Color}
}
sub set_color {
  $_[0]->{Color} = $_[1];
}Here's an alternate way to access the arguments: $_[0] is used in place, rather than with a shift. Functionally, this example is identical to the previous implementation, but it's slightly faster, at the expense of some ugliness.
 
Copyright © 2003 O'Reilly & Associates. All rights reserved.