Thread Perl 5.42 (30 answers)
Opened by lichtkind at 2025-07-05 23:10

rosti
 2025-07-10 07:38
#197135 #197135
User since
2011-03-19
3688 Artikel
BenutzerIn
[Homepage]
user image
Quote
aber Logik und Kapselung zu verheiraten lässt die Komplexität der Sprachsyntax nur unnötig explodieren.


Genau das müssen ja die Getter- und Settermethoden tun, denn mal eben eine Eigenschaft ändern ist in der Regel alles Andere als trivial und von daher auch kein Fall für vordefinierte Getter bzw. Settermethoden. Somit sind :reader :writer bestenfalls eine nette Spielerei wobei man für Objekte in denen man Eigenschaften unabhängig voneinander ändern kann auch gleich TIEHASH nehmen kann, was den Code extrem vereinfacht und auch lesbarer sowie wartbarer macht.


mfg

Etwas ausführlicher, nehmen wir ein Objekt bei dem es gar keinen Sinn macht, einzelne Eigenschaften zu ändern weil es dadurch unbrauchbar wird:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
    my $self = bless{
        'leap'      => undef, # setzt Konstruktor
        'month'     => undef, # wie Eingegeben
        'age'       => undef, # wie Vorgegeben oder wird berechnet
        'gregdate'  => undef, # wie Vorgegeben oder wird berechnet
        'wd'        => undef, # Wochentag numerisch
        'ultimo'    => undef, # letzter Tag im Monat
        'day'       => undef, # wie Eingegeben
        'wochentag' => undef, # Wochentag ausgeschrieben in Deutsch
        'year'      => undef, # wie Eingegeben
        'jd'        => undef, # wie Eingegeben oder wird berechnet
        'julidate'  => undef, # wie Vorgegeben oder wird berechnet
    }, $class;


Bei einem anderen Objekt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
my $person = {
   name  => '',
   vname => '',
   plz   => '',
   ort   => '',
   str   => '',
   tel   => ''
};


Können zwar einzelne Eigenschaften unabhängig voneinander geändert werden, es wäre jedoch müßig :reader und :writer dazu einzusetzen, denn im Fall daß neue Eigenschaften hinzukommen müsste der Code geändert werden.
Last edited: 2025-07-10 13:36:25 +0200 (CEST)
http://blog.rolfrost.de/

The art of steam.

View full thread Perl 5.42