Thread Stilfragen (Anfaengerperl)
(12 answers)
Opened by shi8dao at 2011-05-13 08:33
Ich schreibe gerne kombinierte getter/setter. Das macht große Module übersichtlicher, da die selbe Methode einen Wert ausgibt und ließt.
Außerdem sollte man bei generischen settern/gettern testen, ob der Schlüssel schon existiert. Es ist unpraktisch wenn ein Tippfehler als Schlüssel im Objekt landet und nichts macht. Der Programmierende sucht sonst ewig warum etwas nicht funktioniert. Etwa so könnte man es machen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 use Carp; #... sub attribute { my $self=shift; my $attr=shift; # teste ob die variable im Objekt existiert if(exists($self->{$attr})) { my $val=$self->{$attr}; # setze neuen Wert wenn angeben $self->{$attr}=shift() if(@_); return $val; } carp(qq(Attribute "$attr" not part of ).__PACKAGE__."!\n"); return undef; } # get-setter: sub id { shift->attribute('id',@_); } sub value { shift->attribute('value',@_); } Last edited: 2011-05-13 11:26:41 +0200 (CEST) |