in reply to a simple matter of elegance

sub _data { $_[0]{data}{$_[1] } sub name { $_[0]->_data( 'name' ) } sub address { $_[0]->_data( 'address' ) }

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?