Perl run函数在脚本exit/die上运行

ljo96ir5  于 8个月前  发布在  Perl
关注(0)|答案(2)|浏览(68)

我有一个问题,找不到我需要的答案。我有一个Perl脚本,它可以处理几个文件。在脚本的开头,一个给定的文件被重命名并备份,在脚本的结尾,它被重命名回来,所以原始文件根本没有被触及。但是如果脚本在运行时死亡,例如,如果一个文件丢失,或者如果用户通过键盘上的“cmd + c”退出脚本?是否有一种方法来定义一个函数,当脚本死亡或用户希望脚本死亡时,该函数总是被执行?我在perl中找到了“END”-block,但它认为这在我的情况下不起作用。
谢谢你,谢谢!

  • 亚历克斯
kg7wmglp

kg7wmglp1#

END块适用于exitdie。如果不适用于信号,则必须创建一个信号处理程序。将其设置为空sub会将控制传递给END块:

local $SIG{INT} = sub {};
jmp7cifd

jmp7cifd2#

文件丢失通常由END块覆盖,而Ctrl-C正在生成一个信号,并且必须单独处理,正如@choroba所指出的那样。
对于寻求答案的其他读者,END块的语法:

END {
 command;
 command;
 …
}

相关问题