9 sub End::DESTROY { $_[0]->() }
13 return bless(sub { $c->() }, "End");
16 foreach my $inx ("", "aabbcc\n", [qw(aa bb cc)]) {
17 foreach my $outx ("", "xxyyzz\n", [qw(xx yy zz)]) {
19 local $SIG{__WARN__} = sub { $warn .= $_[0] };
22 my $e = end { die $inx if $inx };
24 ok ref($@) eq ref($outx) && $@ eq $outx;
25 $warn =~ s/ at [^\n]*\n\z//;
26 is $warn, $inx ? "\t(in cleanup) $inx" : "";
33 local $SIG{__WARN__} = sub { $warn .= $_[0] };
34 { my $e = end { die "aa\n"; }; }
40 local $SIG{__WARN__} = sub { $warn .= $_[0] };
41 { my $e = end { no warnings "misc"; die "aa\n"; }; }
42 is $warn, "\t(in cleanup) aa\n";