diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 12:20:49 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 12:20:49 +0000 |
commit | 316ee97c621496b0fe3267f57cce81bee44ca1e6 (patch) | |
tree | cb2cab1192b4f58a7971af19b213e980bceda4b4 /Master/tlpkg/tlperl/lib/parent.pm | |
parent | cd0f87b5d39480d85ad9bd4ee37f520f75bed560 (diff) |
Moving old tlperl prior to committing new one
git-svn-id: svn://tug.org/texlive/trunk@21422 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/parent.pm')
-rwxr-xr-x | Master/tlpkg/tlperl/lib/parent.pm | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/Master/tlpkg/tlperl/lib/parent.pm b/Master/tlpkg/tlperl/lib/parent.pm deleted file mode 100755 index a18526bb519..00000000000 --- a/Master/tlpkg/tlperl/lib/parent.pm +++ /dev/null @@ -1,136 +0,0 @@ -package parent; -use strict; -use vars qw($VERSION); -$VERSION = '0.223'; - -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<parent> 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', 'Bar'; - -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<require> 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<base> to remove the cruft -that had accumulated in it. - -=head1 CAVEATS - -=head1 SEE ALSO - -L<base> - -=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<< <corion@cpan.org> >> -Based on the idea of C<base.pm>, which was introduced with Perl 5.004_04. - -=head1 LICENSE - -This module is released under the same terms as Perl itself. - -=cut |