|
NAMErelative - Load modules with relative namesVERSIONVersion 0.04SYNOPSISpackage BigApp::Report; use relative qw(Create Publish); # loads BigApp::Report::Create, BigApp::Report::Publish use relative qw(..::Utils); # loads BigApp::Utils use relative -to => "Enterprise::Framework" => qw(Base Factory); # loads Enterprise::Framework::Base, Enterprise::Framework::Factory DESCRIPTIONThis module allows you to load modules using only parts of their name, relatively to the current module or to a given module. Module names are by default searched below the current module, but can be searched upper in the hierarchy using the "..::" syntax.In order to further loosen the namespace coupling, "import" returns the full names of the loaded modules, making object-oriented code easier to write: use relative; my ($Maker, $Publisher) = import relative qw(Create Publish); my $report = $Maker->new; my $publisher = $Publisher->new; my ($Base, $Factory) = import relative -to => "Enterprise::Framework" => qw(Base Factory); my $thing = $Factory->new; This can also be written using aliases: use relative -aliased => qw(Create Publish); my $report = Create->new; my $publisher = Publisher->new; use relative -to => "Enterprise::Framework", -aliased => qw(Base Factory); my $thing = Factory->new; IMPORT OPTIONSImport options can be given as an hashref or an arrayref as the first argument:# options as a hashref import relative { param => value, ... }, qw(Name ...); # options as an arrayref import relative [ param => value, ... ], qw(Name ...); In order to simplyfing syntax, options can also be given as dash-prefixed params: import relative -param => value, qw(name ...); Available options:
"import" will "die" as soon as a module can't be loaded. "import" returns the full names of the loaded modules when called in list context, or the last one when called in scalar context. AUTHORSébastien Aperghis-Tramoni, "<sebastien at aperghis.net>"BUGSPlease report any bugs or feature requests to "bug-relative at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=relative>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.SUPPORTYou can find documentation for this module with the perldoc command.perldoc relative You can also look for information at:
ACKNOWLEDGEMENTSThanks to Aristotle Pagaltzis, Andy Armstrong, Ken Williams and Curtis Poe for their suggestions and ideas.COPYRIGHT & LICENSECopyright 2007 Sébastien Aperghis-Tramoni, all rights reserved.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |