7

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

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

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

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

4

1 回答 1

2

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

例如

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

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

于 2014-01-17T14:11:10.247 回答