package Edge; use vars qw(%FIELDS); # Define class properties use fields qw(from_node to_node label); { # Default values for class properties my $_def_values = { from_node => undef, to_node => undef, label => undef, }; sub _class_def { $_def_values; } } # Constractor sub new { my $proto = shift; my $class = ref($proto) || $proto; # Define default values for object instance my $defaults = ref($proto) ? $proto : $class->_class_def(); my $self = {}; for(keys %$defaults) { $self->{$_} = $defaults->{$_} } + bless $self, $class; $self->_init(@_) if @_; return $self; } # Initialization of object sub _init { my $self = shift; my %params = @_; for my $par(keys %params) { $self->{$par} = $params{$par} if exists $FIELDS{$par}; } }
--------------------------------
SV* sv_bless(SV* sv, HV* stash);
In reply to Re: Multiple Prototypes for Object Constructor
by nite_man
in thread Multiple Prototypes for Object Constructor
by arunhorne
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |