: I think perl's Signal Handling has a bug.
:
: I tried this
: $SIG{INT} = \&Ctrl_C;
:
: sub Ctrl_C
: {
: print "......\n";
: $SIG{INT} = \&Ctrl_C;
Why are you re-assigning the signal handler inside the handling sub?
: $interrupted = 1;
: ...
: }
:
: but when I press Ctrl+C, it some times works, but perl crashes
: sometimes.
:
: Windows reports as the preocess perl.exe has generated an error.
: Closing perl.exe ....
:
: I use Win2K Professionl, SP3
: Active Perl 5.6.1 Build 635
:
: Can anyone tell me whether it is a Active Perl issue or Win2K issue.
:
Depends how you define "issue".

Windows ain't really into signals, which is part of the problem (interestingly, I've been looking into this area for Parrot internals of late, which is the runtime engine for Perl 6). I'm running ActivePerl 5.8, which doesn't exhibit the problem you showed. I know 5.8 also had additional fixes for things that previously could go wrong under Win32, so it may be a good idea for you to upgrade.
Before that, try removing the line I asked about earlier, 'cus your program works without it so far as I can see and there certainly are things that you probably shouldn't do in signal handlers.
Jonathan
###
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");