package Parent_object;
sub new {
my $O = bless {}, shift;
$O->{'attribute-1'} = "value 1";
$O->{'attribute-2'} = "value 2";
$O->{'attribute-3'} = "value 3";
[...]
return ($O);
}
####
package Parent_object;
sub new {
my $O = bless {}, shift;
$O->{'data'} = _fill_attributes (@_);
return ($O);
}
sub _fill_attributes {
my $result = {};
$result->{'attribute-1'} = $_[0];
$result->{'attribute-2'} = $_[1];
$result->{'attribute-3'} = $_[2];
[....]
return ($result);
}
####
package Parent_object;
[...]
sub do_something {
my $O = shift;
my $f = $O->{'sub-function-for-this-case'};
$f->($O);
return ([whatever]);
}
####
package Parent_object;
[...]
sub do_something {
my $O = shift;
my $f = $O->{'sub-function-for-this-case'};
$f->($O->{'data'});
return ([whatever]);
}