【发布时间】:2012-02-29 13:18:04
【问题描述】:
嘿,我考虑编写一个函数,在某些情况下提示我(perl 的退出状态不好,它打印的警告以“Could not find * in @INC”开头)可能重新运行命令。
你认为这可行吗?
我发现了TRAPZERR 函数。但我什至没有得到最后一个命令的名称,只有最后一个参数,所以一个具体点是:我怎样才能得到命令名呢? !!:0 不起作用。
接下来的事情是:我想我可能不得不用 preexec 做一些技巧来捕捉 stderr 的第一行(如果这不起作用,那不是一个大问题,但无论如何它会很有趣),我想将 2> 附加到管道或其他东西上,但我不确定如何首先构建该管道。但如上所述,这是一个小问题。
但实际上,如果您认为:不,这项任务是不可能的!请告诉我(尽管我很想知道为什么)。
从我得到的一个答案到现在,我认为我可以缩小问题范围:
是否可以在 perl 脚本周围包装 MULTIOS 重定向? (我想了一些特殊的 exec,但没有想出一个可行的方法)
【问题讨论】: