在Perl中有没有办法重启当前正在运行的程序?

前端之家收集整理的这篇文章主要介绍了在Perl中有没有办法重启当前正在运行的程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Perl中运行一个程序,它在一个点上评估从子程序中调用的if语句中的数据,例如
sub check_good {
    if (!good) {
         # exit this subroutine
         # restart program
    } 
    else {
         # keep going
    }
} # end sub

我遇到的问题是退出并重新启动.我知道我可以使用0号出口;直接退出,但显然这是不正确的,如果我想回到开头.我尝试调用基本上启动程序的子程序,但是当它运行时它将再次回到这一点.
我想把它放在while循环中,但这意味着将整个文件放在循环中,这将是非常不切实际的.

我实际上并不知道这是否可行,所以任何输入都会很棒.

解决方法

如果您没有更改@ARGV,或者保留了它的副本,则可能会执行类似 exec($^X,$0,@ARGV)的操作.

$^X and $0(或$EXECUTABLE_NAME和$PROGRAM_NAME,请参阅下面的Brian的评论)分别是当前的perl解释器和当前的perl脚本.

猜你在找的Perl相关文章