view Lib/IMPL/base.pm @ 164:eb3e9861a761

SQL traits in progress
author wizard
date Mon, 28 Mar 2011 01:36:24 +0400
parents 6ce1f052b90a
children
line wrap: on
line source

package IMPL::base;
use strict;
use IMPL::_core::version;

my %loaded;

sub import {
	shift;
	
	no strict 'refs';
	my $class = caller;
	
	foreach my $baseClass (@_) {
		unless ($loaded{$baseClass}) {
			undef $!;
			undef $@;
			$loaded{$baseClass} = 1;
			eval "require $baseClass; 1;";
			
			die $@ if $@ and not $!;
		}
		
		#TODO debug warn if base class is empty;
		
		push @{"${class}::ISA"}, $baseClass;
	}
}

1;

__END__

=pod

=head1 NAME

C<IMPL::base> быстрая версия директивы C<base>.

=cut