since you even used the word "configure", why not make a class variable, and have the Configure sub set that variable (or just write it directly)? You would have to have a lot more protection/error-checking than in this example, but the proof-of-concept could be:
package MyClass; use warnings; use strict; our %Config; sub Configure { %Config = %{$_[0]}; } sub new { my $class = shift; my $self = {%Config}; my %args = @_; foreach (keys %args) { $self->{$_} = $args{$_}; } return bless $self, $class; } package main; use warnings; use strict; use Data::Dumper; MyClass::Configure( {group => 1, defined => 'values'}); my $x = MyClass->new(); my $y = MyClass->new(extra => 'here'); MyClass::Configure( {group => 2, defined => 0}); my $z = MyClass->new(third => 3); $/ = "\n"; print Dumper $_ for $x, $y, $z;
In reply to Re^3: Using a factory class to return objects of the same class
by pryrt
in thread Using a factory class to return objects of the same class
by Amblikai
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |