>>375
「トラップしました」を表示する必要はないんだよな?
$SIG{INT} = 'IGNORE';
とやったらどうなる?

> sub s {
> print "トラップしました";
> }
> だけにすると何も受け付けなくなります
漏れの環境(perl5.8.7のcygwinおよびperl5.8.5のLinux2.6(CentOS))では再現しないな。
ちゃんと元のループに戻ってくる。環境は?

テストに使用したコード:
perl -e '$SIG{INT} = \&t; while(1){print scalar <>}; sub t{print "Traped!\n"}'