Commit | Line | Data |
38b8243a |
1 | #!./perl |
2 | |
608b3986 |
3 | print "1..14\n"; |
38b8243a |
4 | |
5 | $SIG{__DIE__} = sub { print ref($_[0]) ? ("ok ",$_[0]->[0]++,"\n") : @_ } ; |
6 | |
06bf62c7 |
7 | $err = "#[\000]\nok 1\n"; |
38b8243a |
8 | eval { |
9 | die $err; |
10 | }; |
11 | |
12 | print "not " unless $@ eq $err; |
13 | print "ok 2\n"; |
14 | |
15 | $x = [3]; |
16 | eval { die $x; }; |
17 | |
18 | print "not " unless $x->[0] == 4; |
19 | print "ok 4\n"; |
20 | |
21 | eval { |
22 | eval { |
23 | die [ 5 ]; |
24 | }; |
25 | die if $@; |
26 | }; |
05423cc9 |
27 | |
28 | eval { |
29 | eval { |
30 | die bless [ 7 ], "Error"; |
31 | }; |
32 | die if $@; |
33 | }; |
34 | |
35 | print "not " unless ref($@) eq "Out"; |
36 | print "ok 10\n"; |
37 | |
ff882698 |
38 | { |
39 | package Error; |
05423cc9 |
40 | |
ff882698 |
41 | sub PROPAGATE { |
42 | print "ok ",$_[0]->[0]++,"\n"; |
43 | bless [$_[0]->[0]], "Out"; |
44 | } |
45 | } |
46 | |
47 | { |
48 | # die/warn and utf8 |
49 | use utf8; |
50 | local $SIG{__DIE__}; |
51 | my $msg = "ce ºtii tu, bã ?\n"; |
52 | eval { die $msg }; print "not " unless $@ eq $msg; |
53 | print "ok 11\n"; |
54 | our $err; |
55 | local $SIG{__WARN__} = $SIG{__DIE__} = sub { $err = shift }; |
56 | eval { die $msg }; print "not " unless $err eq $msg; |
57 | print "ok 12\n"; |
58 | eval { warn $msg }; print "not " unless $err eq $msg; |
59 | print "ok 13\n"; |
608b3986 |
60 | eval qq/ use strict; \$\x{3b1} /; |
61 | print "not " unless $@ =~ /Global symbol "\$\x{3b1}"/; |
62 | print "ok 14\n"; |
05423cc9 |
63 | } |