从IO :: File获取异常?

时间:2013-12-19 20:51:38

标签: perl exception perl-io autodie

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

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

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

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

1 个答案:

答案 0 :(得分:2)

你看过Path :: Tiny吗?语法不同但它确实会抛出异常。

E.G。

use Path::Tiny;
path('/non/existent/file')->openr;

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