package ExePM::Carp; use strict; use warnings; use base 'Exporter'; use Carp qw(); use Win32; our @EXPORT=qw(confess croak carp); our @EXPORT_OK=qw(cluck die); our $VERSION='1.00'; BEGIN { *CORE::GLOBAL::die=$main::SIG{__DIE__}=\&ExePM::Carp::die; } sub confess { ExePM::Carp::die Carp::longmess @_; } sub croak { ExePM::Carp::die Carp::shortmess @_; } sub carp { warn Carp::shortmess @_; } sub cluck { warn Carp::longmess @_; } sub die { my ($arg,@rest)=@_; CORE::die($arg,@rest) if ref($arg) || $^S || Carp::longmess()=~/eval [\{\']/m; $arg=join('',$arg,@rest); unless ($arg=~/\n$/) { my ($pkg,$file,$line)=caller(0); $arg.=" at $file line $line.\n"; } Win32::MsgBox($arg,MB_ICONSTOP,$0); CORE::die($arg); }; 1;