sub _create_accessors { my %orderObjectFields = @_; foreach my $field ( keys %orderObjectFields ) { my $default = $orderObjectFields{$field}; no strict 'refs'; *{ __PACKAGE__ . "::$field" } = sub { my $value = ( scalar @_ > 1 ? $_[0]->{$field} = $_[1] : $_[0]->{$field} ); $value = $default unless defined $value; $value; }; } }