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 =head1 COPYRIGHT This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License