の後にジャンプするのが好きwhile(1)
です。どうやってするか?while 式にブロッキング呼び出しが含まれているため、特別な変数をチェックしても問題ありません。そのため、式をチェックすると手遅れになります。last
#!/usr/bin/perl
use strict;
use warnings;
use feature qw( say );
use sigtrap 'handler', \&hup_handler, 'HUP';
my $counter = 0;
sub hup_handler { say 'HUP!!!'; $counter = 0; return; }
say 'It starts here';
while ( 1 ) {
sleep( 1 ); # Blocking call is in reality within while expression.
say ++$counter;
}
say 'It ends here';