The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Win32::Die;
$VERSION='0.01';

use Term::ReadKey;

  $SIG{__DIE__} = sub { 
    # PROMPT is for NT/2000, CMDLINE is for 95/98 
    return unless !defined $ENV{PROMPT} 
      or (defined $ENV{CMDLINE} and $ENV{CMDLINE} eq 'WIN');

    print shift, "Hit any key to close this window..."; 
     ReadMode 4; 
     ReadKey  0; 
     ReadMode 0;  
     
    exit;
  }

__END__

=head1 NAME

Win32::Die - Dying gracefully under Win32

=head1 SYNOPSIS

	use Win32::Die;

	die "Hello world";

=head1 DESCRIPTION

Windows automatically ("helpfully") closes DOS windows when they quit. 
This can be annoying when your Perl program dies, since you don't get a 
chance to read the error message. Win32::Die detects if your program was 
double-clicked, or run from a command line, and alters %SIG{__DIE__} 
appropriately. The DOS window remains put until you close the window or 
hit a key.  

=head1 NOTES

If another module attempts to catch __DIE__ exceptions, then using 
Win32::Die may cause fatal errors. But there are different methods of 
accomplishing the same effect. Depending on your situation, one of these
methods might be a better solution. 

See: http://www.perlmonks.org/index.pl?node_id=61300       

=head1 AUTHOR

Alex Vandiver 

Maintained by Mike Accardo <mikeaccardo@yahoo.com>

=head1 COPYRIGHT

This module is free software. It may be used, redistributed
and/or modified under the terms of the Perl Artistic License