unseen.t

来自「source of perl for linux application,」· T 代码 · 共 55 行

T
55
字号
use Test::More tests => 7;BEGIN {    if ($ENV{PERL_CORE}) {        chdir('t') if -d 't';        @INC = qw(../lib);    }}BEGIN { use_ok('NEXT') };my $order = 0;package A;@ISA = qw/B C D/;sub test { ::ok(++$order==1,"test A"); $_[0]->NEXT::UNSEEN::test; 1}package B;@ISA = qw/D C/;sub test { ::ok(++$order==2,"test B"); $_[0]->NEXT::UNSEEN::test; 1}package C;@ISA = qw/D/;sub test { ::ok(++$order==4,"test C"); $_[0]->NEXT::UNSEEN::test; 1}package D;sub test { ::ok(++$order==3,"test D"); $_[0]->NEXT::UNSEEN::test; 1}package main;my $foo = {};bless($foo,"A");eval{ $foo->test }	? pass("Correctly survives after C")	: fail("Shouldn't die on missing ancestor");package Diamond::Base;my $seen;sub test {	$seen++ ? ::fail("Can't visit inherited test twice")		: ::pass("First diamond is okay");	shift->NEXT::UNSEEN::test;}package Diamond::Left;  @ISA = qw[Diamond::Base];package Diamond::Right; @ISA = qw[Diamond::Base];package Diamond::Top;   @ISA = qw[Diamond::Left Diamond::Right];package main;Diamond::Top->test;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?