diff options
Diffstat (limited to 't/mro/next_ineval_utf8.t')
-rw-r--r-- | t/mro/next_ineval_utf8.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/mro/next_ineval_utf8.t b/t/mro/next_ineval_utf8.t new file mode 100644 index 0000000000..cd44f6c04a --- /dev/null +++ b/t/mro/next_ineval_utf8.t @@ -0,0 +1,46 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use utf8; +use open qw( :utf8 :std ); + +require q(./test.pl); plan(tests => 1); + +=pod + +This tests the use of an eval{} block to wrap a next::method call. + +=cut + +{ + package అ; + use mro 'c3'; + + sub ຟǫ { + die 'అ::ຟǫ died'; + return 'అ::ຟǫ succeeded'; + } +} + +{ + package b; + use base 'అ'; + use mro 'c3'; + + sub ຟǫ { + eval { + return 'b::ຟǫ => ' . (shift)->next::method(); + }; + + if ($@) { + return $@; + } + } +} + +like(b->ຟǫ, + qr/^అ::ຟǫ died/u, + 'method resolved inside eval{}'); + + |