Nun, ich nutze hier das Exception Modell für die Fehlerbehandlung was die Ausgabe einer für den Benutzer verständlichen Fehlermeldung mit einschließt. Sprachneutral kann man höchstens innerhalb seiner Klassen bleiben.
Was Exceptions zur Fehlerbehandlung betrifft, ist zu entscheiden ob die ein Nutzer verursacht oder ob der Programmierer den Code einer Klasse falsch verwendet. Das kann man in Modulen die für die Allgemeinheit bestimmt sind nicht machen, wohl aber in eigenen Entwicklungen wie das Beispiel zeigt. Und für ein falsches Datum gibt es sehr viele Möglichkeiten zumal 2 Kalender im Spiel sind.
Hier lege ich den ganzen Code offen um das mal zu zeigen wie sowas den Anwendungs Code extrem vereinfacht.
In CPAN Modulen ist Carp
empfohlen was jede EX mit einem Trace dekoriert.
Es gibt in Perl übrigens noch weitere Möglichkeiten, den Trace bedarfsweise (und zentral!) ein oder auszuschalten, was hier ja auch angesprochen wurde.
.