【发布时间】:2014-01-08 14:19:17
【问题描述】:
与直接使用 perl 的内置 IO 函数相比,IO::File、IO::Socket::INET 模块具有一些优势,例如具有显式语法来刷新句柄。
但是,它们似乎比内置的 IO 功能有一些缺点。例如,据我所知,它们不能与 autodie 模块结合使用以引发故障异常,因此我发现自己必须编写更多样板代码来处理故障,而不是使用内置函数。
有没有办法将两者结合起来,或者其他一些具有结合功能的模块?我注意到一些用途有限的 IO 模块,例如 File::Slurp,确实允许更灵活的错误处理。
我正在编写模块代码,理想情况下,该解决方案应该可以一直运行到 perl 5.10.0。
【问题讨论】:
-
请注意,文件句柄是/包含
IO::File对象(给定一个足够现代的 perl,也许还有一个use IO::File来加载方法)——所以你可以使用像open这样的内置函数而不放弃 OOP 功能。
标签: perl exception perl-io autodie