1#!/usr/bin/perl
2
3use strict;
4use warnings;
5use utf8;
6use open qw( :utf8 :std );
7require q(./test.pl); plan(tests => 4);
8
9use mro;
10
11{
12    package Poxᚤ;
13    our @ISA = qw//;
14    sub next_prxᔬ { goto &next::method }
15    sub maybe_prxᔬ { goto &maybe::next::method }
16    sub can_prxᔬ { goto &next::can }
17
18    package Ⱦ밧ᶟ;
19    our @ISA = qw//;
20    sub ᕗ { 42 }
21    sub Ƚ { 24 }
22    # বẔ doesn't exist intentionally
23    sub ʠঊₓ { 242 }
24
25    package ᵗ톺;
26    our @ISA = qw/Ⱦ밧ᶟ/;
27    sub ᕗ { shift->Poxᚤ::next_prxᔬ() }
28    sub Ƚ { shift->Poxᚤ::maybe_prxᔬ() }
29    sub বẔ { shift->Poxᚤ::maybe_prxᔬ() }
30    sub ʠঊₓ { shift->Poxᚤ::can_prxᔬ()->() }
31}
32
33is(ᵗ톺->ᕗ, 42, 'proxy next::method via goto');
34is(ᵗ톺->Ƚ, 24, 'proxy maybe::next::method via goto');
35ok(!ᵗ톺->বẔ, 'proxy maybe::next::method via goto with no method');
36is(ᵗ톺->ʠঊₓ, 242, 'proxy next::can via goto');
37