在Perl脚本结束之前始终执行一些代码

Jān*_*ris 5 perl

如何设置必须在Perl脚本停止之前执行的代码?

在这里,如何在perl脚本退出之前运行一段代码我读到了有关END子程序的内容,但它只在脚本正常结束时执行.但是,如果用户通过^ C中止程序,我也希望执行代码.

ber*_*rdt 7

捕获终止信号并重新路由它们,以便最简单的方法:

$SIG{TERM} = $SIG{INT} = $SIG{QUIT} = $SIG{HUP} = sub { die; };
Run Code Online (Sandbox Code Playgroud)

  • @Janis所以,现在你知道,^ C信号是3个不同的信号;)也许你只想使用一个信号,比如`QUIT`或`TERM`或`INT`.只重新路由其中一个. (3认同)
  • 或者你可以让`sub`记住它已被调用.[`state`](http://perldoc.perl.org/functions/state.html)关键字可能对此有利. (2认同)
  • Lawks!什么操作系统为^ C发送3个信号? (2认同)