IO::File ist nicht unbedingt schlecht, aber definitiv suboptimal.
- Es wirft keine Fehler. Bei der Funktion open lässt sich das leicht mit Pragma autodie nachrüsten, aber autodie funktioniert nicht mit Objekten.
- Die Weise, wie man an sysopen kommt, ist ein Entwurfsfehler.
Wenn es unbedingt OO sein muss, dann gibt es File::Open(::OOP), Path::Tiny u.a. Die finde ich persönlich in vielerlei Hinsicht besser.