0

看看这里 Perl 方法调用可以被拦截吗?

它展示了如何为一个简单的 sub 重写符号表。打印命令可以获取我相信的列表,那么拦截/重写它的正确方法是什么?我希望得到一个程序来延迟打印,同时保持相同的签名,而是将输出推送到一个数组中,对其进行预排序,然后在最后反刍所有输出。

4

1 回答 1

7

拦截print本身不是可行的方法——它有多种操作模式,包括写入文件或套接字。相反,请查看select函数,它可用于更改print将写入的默认文件句柄。

此外,请查看IO::Capture使用的“绑定”IO 句柄的概念。

于 2012-03-17T05:11:21.387 回答