Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

UNIVERSAL::extends

by miyagawa (Chaplain)
on Jan 11, 2002 at 23:23 UTC ( [id://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

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2024-03-29 14:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found