Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

UNIVERSAL::extends

by miyagawa (Chaplain)
on Jan 11, 2002 at 23:23 UTC ( #138102=sourcecode: print w/ replies, xml ) Need Help??

Category: Miscellaneous
Author/Contact Info Tatsuhiko Miyagawa <miyagawa@bulknews.net>
Description: Syntactic sugar of base.pm for Java programmers.
package UNIVERSAL::extends;

use strict;
use vars qw($VERSION);
$VERSION = 0.01;

package UNIVERSAL;
no strict 'refs';

sub extends {
    my($child, @base) = @_;
    my $pkg = caller(0);
    die "extends() should be called with class." if ref $child;
    die "inheritor/caller mismatch: $child ne $pkg" if $child ne $pkg;
    eval <<BASE;
package $child;
use base qw(@base);
BASE
    ;
}

1;
__END__

=head1 NAME

UNIVERSAL::extends - syntactic sugar of base.pm

=head1 SYNOPSIS

  use UNIVERSAL::extends;

  package Dog;
  Dog->extends('Animal');
  # same as use base qw(Animal)

=head1 DESCRIPTION

UNIVERSAL::extends is a syntactic sugar of base.pm for Java programmer
+s.

=head1 AUTHOR

Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt>

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=head1 SEE ALSO

L<UNIVERSAL::exports>, L<Class::Fields>, L<Class::Virtual>

=cut

Comment on UNIVERSAL::extends
Download Code

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://138102]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (6)
As of 2014-12-22 03:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (110 votes), past polls