从IO :: File获取异常?

Joh*_*ugh 7 perl exception autodie perl-io

与直接使用perl的内置IO函数相比,IO :: File,IO :: Socket :: INET模块具有一些优势,例如使用显式语法来刷新句柄.

但是,它们似乎比内置IO功能有一些缺点.例如,据我所知,他们无法与autodie模块结合使用来引发故障异常,因此我发现自己必须编写更多的样板代码来处理故障,而不是使用内置函数.

有没有办法将两个或其他具有组合功能的模块组合在一起?我注意到一些有限用途的IO模块,比如File :: Slurp,允许更灵活的错误处理.

我正在编写模块代码,理想情况下,解决方案应该一直回到perl 5.10.0.

小智 2

你看过 Path::Tiny 吗?语法不同,但确实会引发异常。

例如

use Path::Tiny;
path('/non/existent/file')->openr;
Run Code Online (Sandbox Code Playgroud)

将死于 Path::Tiny::Exception 对象(假设您没有这样的文件)