Mercurial > pub > Impl
comparison _test/temp.pl @ 414:ec6f2d389d1e ref20150831
working on IMPL::Config::Bag
author | cin |
---|---|
date | Fri, 02 Oct 2015 06:56:24 +0300 |
parents | 30e8c6a74937 |
children | 3d24b10dd0d5 |
comparison
equal
deleted
inserted
replaced
413:af8d359ee4cc | 414:ec6f2d389d1e |
---|---|
1 #!/usr/bin/perl | 1 #!/usr/bin/perl |
2 use strict; | 2 use strict; |
3 use Carp; | 3 use Carp; |
4 use Time::HiRes qw(gettimeofday tv_interval); | 4 use Time::HiRes qw(gettimeofday tv_interval); |
5 use Scalar::Util qw(blessed); | 5 use Scalar::Util qw(blessed); |
6 my $slot; | |
7 my $ref = bless \$slot, 'Wrapper'; | |
8 sub is { | |
9 my $slot = shift; | |
10 bless \$slot, 'Wrapper'; | |
11 } | |
12 | 6 |
13 sub instanceOf { | 7 my $data = [1,2,3]; |
14 carp "A typename can't be undefined" unless $_[1]; | |
15 blessed($_[0]) and $_[0]->isa($_[1]) | |
16 } | |
17 | 8 |
18 my $bar = Bar->new(); | 9 print foreach @$data, 4; |
19 | |
20 my $t = [gettimeofday]; | |
21 | |
22 for(my $i =0; $i< 1000000; $i++) { | |
23 is($bar)->instanceOf('Bar'); | |
24 } | |
25 | |
26 print "Is: ",tv_interval($t,[gettimeofday]),"\n"; | |
27 | |
28 $t = [gettimeofday]; | |
29 | |
30 for(my $i =0; $i< 1000000; $i++) { | |
31 instanceOf($bar, 'Bar'); | |
32 } | |
33 | |
34 print "Is: ",tv_interval($t,[gettimeofday]),"\n"; | |
35 | |
36 | |
37 package Wrapper; | |
38 use Scalar::Util qw(blessed); | |
39 sub instanceOf { | |
40 blessed(${$_[0]}) and ${$_[0]}->isa($_[1]); | |
41 } | |
42 | |
43 package Bar; | |
44 use IMPL::declare { | |
45 base => ['IMPL::Object' => undef] | |
46 }; | |
47 | 10 |
48 1; | 11 1; |