Mercurial > pub > Impl
comparison _test/temp.pl @ 412:30e8c6a74937 ref20150831
working on di container (role based registrations)
author | cin |
---|---|
date | Mon, 21 Sep 2015 19:54:10 +0300 |
parents | ee36115f6a34 |
children | ec6f2d389d1e |
comparison
equal
deleted
inserted
replaced
411:ee36115f6a34 | 412:30e8c6a74937 |
---|---|
1 #!/usr/bin/perl | 1 #!/usr/bin/perl |
2 use strict; | 2 use strict; |
3 use Carp; | |
4 use Time::HiRes qw(gettimeofday tv_interval); | |
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 } | |
3 | 12 |
4 use IMPL::require { ServicesBag => 'IMPL::Config::ServicesBag' }; | 13 sub instanceOf { |
14 carp "A typename can't be undefined" unless $_[1]; | |
15 blessed($_[0]) and $_[0]->isa($_[1]) | |
16 } | |
5 | 17 |
6 my $root = ServicesBag->new(); | 18 my $bar = Bar->new(); |
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"; | |
7 | 35 |
8 | 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 | |
9 1; | 48 1; |