use strict;
use warnings;
use Script::Carp -stop, -ignore_eval;
use Carp ();
use IO::Scalar;
my $err = '';
{
local *STDERR; close STDIN;
tie *STDERR, "IO::Scalar", \$err;
eval {
Carp::croak "123456789";
};
}
my $msg = "123456789 at t/03-croak.t line 13\n\teval {...} called at t/03-croak.t line 12\nHit Enter to exit:";
my $ng = 0;
$err =~s{(line \d+)\.}{$1}g;
print (($err eq $msg) ? "ok 1\n" : ($ng = "not ok 1\n"));
if ($ng) {
if ($err =~ s{^(.)}{# $1}mg) {
print STDERR "# got:\n";
print STDERR $err, "\n";
} else {
print STDERR "# got: nothing\n";
}
if ($msg =~ s{^(.)}{# $1}mg) {
print STDERR "# expected:\n";
print STDERR $msg, "\n";
}
}
print "1..1\n";