一定時間ごとにある処理をさせますが、特定のキー入力で抜けます。
<STDIN>; ではうまくいかないので下のコードのようにしましたが、
2つ目のwhileを無駄に回さなくてもいいようにする方法はありますかね?
今のところsleepを入れるくらいしか思いつかないです。

sub {
  my $sig = 0;
  local $SIG{INT} = sub {$sig = 1;};
  while (1) {
    # ここに$interval(分)ごとにする処理
    while (time() % ($interval * 60)) {
      sleep (1);
      return 1 if($sig);
    }
  }
}