看看这里,Can Perl method calls be intercepted?
它展示了如何为一个简单的sub重写符号表。我相信print命令可以接受一个列表,那么拦截/重写它的正确方法是什么呢?我希望让一个程序在保持相同签名的同时延迟打印,而不是将输出推入一个数组,对其进行预排序,然后在最后返回所有输出。
发布于 2012-03-17 13:11:21
拦截print本身并不可行--它有许多操作模式,包括写入文件或套接字。相反,请看一下select function,它可用于更改print将写入的默认文件句柄。
另外,请看IO::Capture所使用的“绑定”IO句柄的概念。
https://stackoverflow.com/questions/9747444
复制相似问题