# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
-sub ok { $::count++; push @::results, [$_[1], $_[0]?"":"not "]; }
+sub ok { $::count++; push @::results, [$_[1], $_[0]?"":"not ", defined($_[2])?$_[2]:""]; }
END { print "1..$::count\n";
- print map "$_->[1]ok $_->[0]\n",
+ print map "$_->[1]ok $_->[0] $_->[2]\n",
sort {$a->[0]<=>$b->[0]}
grep $_->[0], @::results }
ok( $out eq "begin\nbye\n", 45 );
{ my $dummy : Dummy; $dummy = bless {}, 'Dummy'; }
-ok( $out eq "begin\nbye\nbye\n", 46 );
-
+if($] < 5.008) {
+ok( 1, 46, " # skip lexicals are not runtime prior to 5.8");
+} else {
+ok( $out eq "begin\nbye\nbye\n", 46);
+}
# are lexical attributes reapplied correctly?
sub dummy { my $dummy : Dummy; }
$applied = 0;
dummy(); dummy();
+if($] < 5.008) {
+ok(1, 47, " # skip does not work with perl prior to 5.8");
+} else {
ok( $applied == 2, 47 );
-
+}
# 45-47 again, but for our variables
$out = "begin\n";
{ our $dummy; $dummy = bless {}, 'Dummy'; }
ok( $out eq "begin\n", 48 );
-{ our $dummy : Dummy; $dummy = bless {}, 'Dummy'; }
+{ no warnings; our $dummy : Dummy; $dummy = bless {}, 'Dummy'; }
ok( $out eq "begin\nbye\n", 49 );
undef $::dummy;
ok( $out eq "begin\nbye\nbye\n", 50 );
# are lexical attributes reapplied correctly?
-sub dummy_our { our $banjo : Dummy; }
+sub dummy_our { no warnings; our $banjo : Dummy; }
$applied = 0;
dummy_our(); dummy_our();
ok( $applied == 0, 51 );
+
+sub UNIVERSAL::Stooge :ATTR(END) {};
+eval {
+ local $SIG{__WARN__} = sub { die @_ };
+ my $groucho : Stooge;
+};
+my $match = $@ =~ /^Won't be able to apply END handler/;
+if($] < 5.008) {
+ok(1,52 ,"# Skip, no difference between lexical handlers and normal handlers prior to 5.8");
+} else {
+ok( $match, 52 );
+}
+