标签: perl
exec 'foo.sh > foo.out'
导致问题,因为命令是通过shell调用而不是直接执行。如何首先将重定向设置为foo.out,然后再设置为exec 'foo.sh'?
foo.out
exec 'foo.sh'
答案 0 :(得分:1)
open(STDOUT, '>', 'foo.out') or die $!; exec 'foo.sh', @args;
如果@args为空,则保证“直接执行”,
@args
exec { 'foo.sh' } 'foo.sh', @args;