summaryrefslogtreecommitdiffstats
path: root/lib/Carp/Always/Color/HTML.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Carp/Always/Color/HTML.pm')
-rw-r--r--lib/Carp/Always/Color/HTML.pm11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Carp/Always/Color/HTML.pm b/lib/Carp/Always/Color/HTML.pm
index 53b3f4e..e0cb599 100644
--- a/lib/Carp/Always/Color/HTML.pm
+++ b/lib/Carp/Always/Color/HTML.pm
@@ -23,20 +23,21 @@ STDERR is pointing to.
BEGIN { $Carp::Internal{(__PACKAGE__)}++ }
sub _die {
+ die @_ if ref($_[0]);
eval { Carp::Always::_die(@_) };
my $err = $@;
- $err =~ s/(.*)/<span style="color:#800">$1<\/span>/;
+ $err =~ s/(.*)( at .*? line .*?$)/<span style="color:#800">$1<\/span>$2/m;
die $err;
}
sub _warn {
- my $warning;
+ my @warning;
{
- local $SIG{__WARN__} = sub { $warning = $_[0] };
+ local $SIG{__WARN__} = sub { @warning = @_ };
Carp::Always::_warn(@_);
}
- $warning =~ s/(.*)/<span style="color:#880">$1<\/span>/;
- warn $warning;
+ $warning[0] =~ s/(.*)( at .*? line .*?$)/<span style="color:#880">$1<\/span>$2/m;
+ warn @warning;
}
my %OLD_SIG;