# ------------------------------------------------------------------------------ # OBJECT CREATION # ------------------------------------------------------------------------------ sub _create_accessors { my %OrderObjectFields = @_; foreach my $field (keys %OrderObjectFields) { my $default = $OrderObjectFields{ $field }; my $code = ' sub '.$field.' { my $value = (scalar @_>1? $_[0]->{"'.$field.'"} = $_[1] : $_[0]->{"'.$field.'"} ); $value ="'.$default.'" unless defined $value; $value; }'; eval $code; die $@ if( $@ ); } } # ------------------------------------------------------------------------------ BEGIN { _create_accessors( 'order_no' => 0 , 'items_in_order' => '', 'supplier_list' => '', ); } # ------------------------------------------------------------------------------ # STANDARD OBJECT METHODS # ------------------------------------------------------------------------------ sub get { my( $self, $attribute ) = @_; return $self->{$attribute}; } # ------------------------------------------------------------------------------ sub set { my( $self, $attribute, $value ) = @_; $self->{$attribute} = $value; }