X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44..53593baa211863fbf66540cf1bcc36c8fb37257f:/modules/fallback/parent.pm diff --git a/modules/fallback/parent.pm b/modules/fallback/parent.pm deleted file mode 100644 index 435ff2554..000000000 --- a/modules/fallback/parent.pm +++ /dev/null @@ -1,136 +0,0 @@ -package parent; -use strict; -use vars qw($VERSION); -$VERSION = '0.221'; - -sub import { - my $class = shift; - - my $inheritor = caller(0); - - if ( @_ and $_[0] eq '-norequire' ) { - shift @_; - } else { - for ( my @filename = @_ ) { - if ( $_ eq $inheritor ) { - warn "Class '$inheritor' tried to inherit from itself\n"; - }; - - s{::|'}{/}g; - require "$_.pm"; # dies if the file is not found - } - } - - { - no strict 'refs'; - # This is more efficient than push for the new MRO - # at least until the new MRO is fixed - @{"$inheritor\::ISA"} = (@{"$inheritor\::ISA"} , @_); - }; -}; - -"All your base are belong to us" - -__END__ - -=head1 NAME - -parent - Establish an ISA relationship with base classes at compile time - -=head1 SYNOPSIS - - package Baz; - use parent qw(Foo Bar); - -=head1 DESCRIPTION - -Allows you to both load one or more modules, while setting up inheritance from -those modules at the same time. Mostly similar in effect to - - package Baz; - BEGIN { - require Foo; - require Bar; - push @ISA, qw(Foo Bar); - } - -By default, every base class needs to live in a file of its own. -If you want to have a subclass and its parent class in the same file, you -can tell C not to load any modules by using the C<-norequire> switch: - - package Foo; - sub exclaim { "I CAN HAS PERL" } - - package DoesNotLoadFooBar; - use parent -norequire, 'Foo', 'Bar'; - # will not go looking for Foo.pm or Bar.pm - -This is equivalent to the following code: - - package Foo; - sub exclaim { "I CAN HAS PERL" } - - package DoesNotLoadFooBar; - push @DoesNotLoadFooBar::ISA, 'Foo'; - -This is also helpful for the case where a package lives within -a differently named file: - - package MyHash; - use Tie::Hash; - use parent -norequire, 'Tie::StdHash'; - -This is equivalent to the following code: - - package MyHash; - require Tie::Hash; - push @ISA, 'Tie::StdHash'; - -If you want to load a subclass from a file that C would -not consider an eligible filename (that is, it does not end in -either C<.pm> or C<.pmc>), use the following code: - - package MySecondPlugin; - require './plugins/custom.plugin'; # contains Plugin::Custom - use parent -norequire, 'Plugin::Custom'; - -=head1 DIAGNOSTICS - -=over 4 - -=item Class 'Foo' tried to inherit from itself - -Attempting to inherit from yourself generates a warning. - - use Foo; - use parent 'Foo'; - -=back - -=head1 HISTORY - -This module was forked from L to remove the cruft -that had accumulated in it. - -=head1 CAVEATS - -=head1 SEE ALSO - -L - -=head1 AUTHORS AND CONTRIBUTORS - -Rafaƫl Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern - -=head1 MAINTAINER - -Max Maischein C< corion@cpan.org > - -Copyright (c) 2007 Max Maischein C<< >> -Based on the idea of C, which was introduced with Perl 5.004_04. - -=head1 LICENSE - -This module is released under the same terms as Perl itself. - -=cut