1#!/usr/bin/perl 2 3use strict; 4use warnings; 5 6use Test::More tests => 2; 7 8BEGIN { use_ok('Class::C3::XS') } 9 10=pod 11 12This tests the use of an eval{} block to wrap a next::method call. 13 14=cut 15 16{ 17 package A; 18 19 sub foo { 20 die 'A::foo died'; 21 return 'A::foo succeeded'; 22 } 23} 24 25{ 26 package B; 27 use base 'A'; 28 29 sub foo { 30 eval { 31 return 'B::foo => ' . (shift)->next::method(); 32 }; 33 34 if ($@) { 35 return $@; 36 } 37 } 38} 39 40like(B->foo, 41 qr/^A::foo died/, 42 'method resolved inside eval{}'); 43 44 45