⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 overload.t

📁 source of perl for linux application,
💻 T
字号:
#!/usr/bin/perl -wBEGIN {    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 => 13;    }}package Overloaded;use overload        q{""}    => sub { $_[0]->{string} },        q{0+}    => sub { $_[0]->{num} };sub new {    my $class = shift;    bless { string => shift, num => shift }, $class;}package main;local $SIG{__DIE__} = sub {    my($call_file, $call_line) = (caller)[1,2];    fail("SIGDIE accidentally called");    diag("From $call_file at $call_line");};my $obj = Overloaded->new('foo', 42);isa_ok $obj, 'Overloaded';is $obj, 'foo',            'is() with string overloading';cmp_ok $obj, 'eq', 'foo',  'cmp_ok() ...';cmp_ok $obj, '==', 42,     'cmp_ok() with number overloading';is_deeply [$obj], ['foo'],                 'is_deeply with string overloading';ok eq_array([$obj], ['foo']),              'eq_array ...';ok eq_hash({foo => $obj}, {foo => 'foo'}), 'eq_hash ...';# rt.cpan.org 13506is_deeply $obj, 'foo',        'is_deeply with string overloading at the top';Test::More->builder->is_num($obj, 42);Test::More->builder->is_eq ($obj, "foo");{    # rt.cpan.org 14675    package TestPackage;    use overload q{""} => sub { ::fail("This should not be called") };    package Foo;    ::is_deeply(['TestPackage'], ['TestPackage']);    ::is_deeply({'TestPackage' => 'TestPackage'},                 {'TestPackage' => 'TestPackage'});    ::is_deeply('TestPackage', 'TestPackage');}

⌨️ 快捷键说明

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