#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; local $SIG{USR1} = sub { say STDERR "Signal 1 caught."; alarm 0; }; local $SIG{USR2} = sub { say STDERR "Bye!"; exit }; my $sum = 0; while (1) { $sum += $_ for 1 .. 100; say $sum; say STDERR scalar localtime, " Sleeping..."; sleep 10; say STDERR scalar localtime, " Ready!"; }