Lieber pl,
Weil die Klasse
Moon
von der KlasseScaliger
erbt und der Konstruktor dieser Elternklasse das Datum als Tag, Monat und Jahr als Einzelwerte erwartet.
finde ich (aus bereits angfeührten Gründen) nicht gut!
Nach außen hin jedoch ist diese Klassenerweiterung transparent und bekommt somit Tag, Monat, Jahr als Einzelwerte übergeben.
Gefällt mir nicht. Es gibt wesentlich effizientere Möglichkeiten Datumswerte zu übergeben.
Meine API orientiert sich also an der Elternklasse. In Perl übrigens auch:
my $moon = Moon->new( date => '9.2.2020' ) or die $@; # gemäß Elternklasse
Aha! Hier verwendest Du einen vollständigen Datumsstring! Keine Einzelteile. Warum aber nur in aller Welt verwendest Du keine generische Formatierung, sondern einen Datumsstring gemäß einer locale wie z.B. in Deutschland?! Kennt Perl denn keine Datumsobjekte? Oder wenigstens Timestamps?
Liebe Grüße
Felix Riesterer