comparison Lib/IMPL/lang.pm @ 274:8d36073411b1

+Added AutoDispose class *code cleanups
author cin
date Wed, 30 Jan 2013 03:30:28 +0400
parents 56364d0c4b4f
children 6253872024a4
comparison
equal deleted inserted replaced
273:ad93c9f4dd93 274:8d36073411b1
3 use warnings; 3 use warnings;
4 4
5 use parent qw(Exporter); 5 use parent qw(Exporter);
6 use IMPL::_core::version; 6 use IMPL::_core::version;
7 use IMPL::clone qw(clone); 7 use IMPL::clone qw(clone);
8 use Scalar::Util qw(blessed);
8 9
9 require IMPL::Class::PropertyInfo; 10 require IMPL::Class::PropertyInfo;
10 11
11 our @EXPORT = qw(&is &isclass); 12 our @EXPORT = qw(&is &isclass &typeof);
12 our %EXPORT_TAGS = ( 13 our %EXPORT_TAGS = (
13 base => [ 14 base => [
14 qw( 15 qw(
15 &is 16 &is
16 &clone 17 &clone
17 &isclass 18 &isclass
19 &typeof
18 ) 20 )
19 ], 21 ],
20 22
21 declare => [ 23 declare => [
22 qw( 24 qw(
68 70
69 sub isclass { 71 sub isclass {
70 eval {not ref $_[0] and $_[0]->isa( $_[1] ) }; 72 eval {not ref $_[0] and $_[0]->isa( $_[1] ) };
71 } 73 }
72 74
75 sub typeof(*) {
76 eval { $_[0]->typeof } || blessed($_[0]);
77 }
78
73 sub virtual($) { 79 sub virtual($) {
74 $_[0]->Virtual(1); 80 $_[0]->Virtual(1);
75 $_[0]; 81 $_[0];
76 } 82 }
77 83