is_deeply_dne_bug.t
来自「source of perl for linux application,」· T 代码 · 共 57 行
T
57 行
#!/usr/bin/perl -w# test for rt.cpan.org 20768## There was a bug where the internal "does not exist" object could get# confused with an overloaded object.BEGIN { if( $ENV{PERL_CORE} ) { chdir 't'; @INC = ('../lib', 'lib'); } else { unshift @INC, 't/lib'; }}use strict;use Test::More;BEGIN { if( !eval "require overload" ) { plan skip_all => "needs overload.pm"; } else { plan tests => 2; }}{ package Foo; use overload 'eq' => \&overload_equiv, '==' => \&overload_equiv; sub new { return bless {}, shift; } sub overload_equiv { if (ref($_[0]) ne 'Foo' || ref($_[1]) ne 'Foo') { print ref($_[0]), " ", ref($_[1]), "\n"; die "Invalid object passed to overload_equiv\n"; } return 1; # change to 0 ... makes little difference }}my $obj1 = Foo->new();my $obj2 = Foo->new();eval { is_deeply([$obj1, $obj2], [$obj1, $obj2]); };is $@, '';
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?