Ik had laatst op mijn werk een discussie over een OOP module die ik had geklust. Het ding gebruikt nogal wat accessor methods (set & read var) en die laat ik definieren in een lusje.
zo ongeveer:
De discussie was dus dat het op deze manier onduidelijk is welke flow de data volgt door de module. Toch vind ik dit een elegantere oplossing dan 20 keer een sub jada { ... } te typen.
Wat is jullie mening?
zo ongeveer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| package OopModule;
use strict; #|| die!
#define what the module can do.
#The values are defaults.
my %can_ = ( "Key" => "",
"Lock" => "Very big",
"Tweaker" => "Cool kinda guy",
"Cows" => "Run!",
"Hash" => {},
"Array" => [ 1, 3, 5, 7],
);
sub new {
my $class = shift;
my $self = {};
return(bless($class, $self));
}
foreach my $key ( keys %can_ )
no strict 'refs';
*{$key} = sub {
my $self = shift;
my $value = shift;
# set the value or the default value
$self->{$key} = $value if $value;
$self->{$key} = $can_{$key} if !$self->{$key};
return $self-{$key}
}
} |
De discussie was dus dat het op deze manier onduidelijk is welke flow de data volgt door de module. Toch vind ik dit een elegantere oplossing dan 20 keer een sub jada { ... } te typen.
Wat is jullie mening?
edit:
ff wat typootjes weg gewerkt
ff wat typootjes weg gewerkt