Sebastian Knapp > basis-0.05003 > basis

Download:
basis/basis-0.05003.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.05003   Source  

NAME ^

basis - use base with import call

VERSION ^

Version 0.05003

SYNOPSIS ^

Usage is similar to base or parent:

    package Baz;
    use basis qw/Foo bar/;

Or with arguments for import:

    package Foo;
    use basis Bary => [go => "away"];

DESCRIPTION ^

It uses Sub::Uplevel to do the construct

  BEGIN {
          use base qw/Foo bal/;
          Foo->import;
          bal->import('tor');
  };

transparently for the parent and child class.

If the classname is followed by a array reference, than the dereferenced array is used in the import call as argument.

Now it uses the import method from the class named in the global variable $basis::base. When not set from outside, this variable will be set during the first load of this module. It defaults to parent and as second alternative to base.

IMPORTANT NOTE ^

The call of Sub::Uplevel might come to late, so uplevel will not work as expected. If you use this module, the same rule as for Sub::Uplevel applies:

Use Sub::Uplevel as early as possible in your program.

Now this module croaks when Sub::Uplevel is not used earlier enough.

AUTHOR ^

Sebastian Knapp, <rock@ccls-online.de>

BUGS ^

Please report any bugs or feature requests to bug-basis at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=basis. I will be notified, and then you will automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGMENT ^

Thank you Michael G. Schwern for base and Sub::Uplevel. I hope this tiny add-on finds your blessing. Thank you David A Golden for maintenance and improvement of Sub::Uplevel.

SEE ALSO ^

Sub::Uplevel

base

parent

COPYRIGHT & LICENSE ^

Copyright 2006-2012 Computer-Leipzig, all rights reserved.

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

syntax highlighting: