IO :: File,IO :: Socket :: INET模块比直接使用perl的内置IO函数有一些优势,例如使用显式语法来刷新句柄。
但是,它们似乎比内置IO功能有一些缺点。例如,据我所知,他们无法与autodie模块结合使用来引发故障异常,因此我发现自己必须编写更多的样板代码来处理故障,而不是使用内置函数。
有没有办法将两个或其他具有组合功能的模块组合在一起?我注意到一些有限用途的IO模块,比如File :: Slurp,允许更灵活的错误处理。
我正在编写模块代码,理想情况下,解决方案应该一直运行到perl 5.10.0。
答案 0 :(得分:2)
你看过Path :: Tiny吗?语法不同但它确实会抛出异常。
E.G。
use Path::Tiny;
path('/non/existent/file')->openr;
会死于Path :: Tiny :: Exception对象(假设你没有这样的文件)