hotti: Perl Hashes sortieren

Beitrag lesen

hi,

ich würde behaupten, du machst etwas falsch. Mir fallen spontan drei (vier) Dinge ein, die an einem übergebenen Datum falsch sein können: der übergebene Wert ist kein Datum in parsebarer Form , (parsebar aber das Ergebnis ist unerwartet z.B. 2011-02-29), das Datum ist zu früh oder zu spät. Welche weiteren 34 Fälle erzeugst du noch?

Der Benutzer darf ein Datum eingeben. Zu
G- Gregorianischen Kalender
J- Julianischen Kalender
B- beliebig (wird im Programm entschieden, zu welcher Epoche J|G es gehört)
JD- Weitere Eingabemöglichkeit ist der Julianische Tag, der muss positiv, numerisch, integer sein.

Mögliche Fehler
JD Nicht numerisch                                                        1
G Format, kein Schaltjahr, ungültig                                       3
J Format, kein Schaltjahr, ungültig                                       3
B Format, kein Schaltjahr, ungültig, ungültig aufgrund Greg. Reform       4
G Jahr 0, Mon 0, Tag 0                                                    3
J Jahr 0, Mon 0, Tag 0                                                    3
B Jahr 0, Mon 0, Tag 0                                                    3
                                                                      ------
                                                                         20
Die Prüfungen für B sind jedoch an 2 weiteren Stellen (Fall J, G)         6
für G, J, B dazu
Mon nicht angegeben, Tag nicht angegeben, Jahr nicht angegeben            9

Ungültig heißt z.B. Monat > 12, Tag > 31 o.ä.

Macht zusammen 35 ;)

Dazu kommen Exceptions, die beim falschen Anwenden des Moduls auftreten, die werden mit Carp erzeugt und zeigen dem Programmierer ein Backtrace, z.B. wenn die übergebene Argumentenliste nicht passt.

Es sind zwar Überschneidungen, aber im Modul sind die Prüfungen verteilt auf kurze und schmerzlose die "...\n".

Was dabei rauskommt, ist ein Objekt und: Wie Du in einem anderen Post richtig bemerkt hast, ists eine Exception, wenn das Objekt nicht erstellt werden konnte ;)

Das Modul hat überschaubare 277 Zeilen, wenn ich die Prüfungen über normale Kontrollstrukturen machen würde, wären weit über 1000 Zeilen Code entstanden.

Hotti