C:\Documents and Settings\Owner\Desktop>perl n13.pl
Name "main::OUTPUT" used only once: possible typo at n13.pl line 39 (#+1)
(W once) Typographical errors often show up as unique variable nam+es.
If you had a good reason for having a unique name, then just menti+on it
again somehow to suppress the message. The our declaration is
provided for this purpose.
NOTE: This warning detects symbols that have been used only once s+o $c, @c,
%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are con+sidered
the same; if a program uses $c only once but also uses any of the +others it
will not trigger this warning.
Parsing of undecoded UTF-8 will give garbage when decoding entities at+ n13.pl li
ne 58, <INPUT> line 2.
C:\Documents and Settings\Owner\Desktop>

It didn't crash for me. But if I do a -d, it does crash with a "Free to wrong pool".

C:\Documents and Settings\Owner\Desktop>perl -d n13.pl
Name "main::OUTPUT" used only once: possible typo at n13.pl line 39 (#+1)
(W once) Typographical errors often show up as unique variable nam+es.
If you had a good reason for having a unique name, then just menti+on it
again somehow to suppress the message. The our declaration is
provided for this purpose.
NOTE: This warning detects symbols that have been used only once s+o $c, @c,
%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are con+sidered
the same; if a program uses $c only once but also uses any of the +others it
will not trigger this warning.
Attempt to free non-existent shared string 'ì‚', Perl interpreter: 0x+7331ad4 at
(eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, <INPUT> line 3.
Attempt to free non-existent shared string 'LineNumber', Perl interpre+ter: 0x733
1ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, <INPUT> line 3+.
Attempt to free non-existent shared string 'SourceFile', Perl interpre+ter: 0x733
1ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, <INPUT> line 3+.
Attempt to free non-existent shared string 'WatchList', Perl interpret+er: 0x7331
ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, <INPUT> line 3.
Attempt to free non-existent shared string 'Command', Perl interpreter+: 0x7331ad
4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, <INPUT> line 3.
Free to wrong pool 59184e0 not 235c78 at (eval 2)[C:/Perl/lib/DynaLoad+er.pm:225]
line 1, <INPUT> line 3.
C:\Documents and Settings\Owner\Desktop>

Yes indeed. I have not posted the complete script as I mentioned in my first post.
It only gives the structure of the Perl Script and the relevant information which should help in troubleshooting this issue.
I have am unable to understand from your response, that was the correct solution!
Thanks.