Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: how do you include multiple modules using one module

by doom (Deacon)
on Feb 26, 2009 at 20:31 UTC ( #746667=note: print w/replies, xml ) Need Help??


in reply to how do you include multiple modules using one module

Toolkit looks like it may be on the right track... but don't ignore the obvious, this sort of thing works:
package Module::DemoGroupExport; # doom@kzsu.stanford.edu # 26 Feb 2009 =head1 NAME Module::DemoGroupExport - repaces many "use" statements with one =head1 SYNOPSIS use Module::DemoGroupExport qw( carp croak Dumper mkpath dirname ); my $file = shift; my $loc = dirname( $file ); unless (-d $loc) { carp "Creating $loc..."; mkpath( $loc ) or croak "Could not create $loc: $!"; } =head1 DESCRIPTION Demonstration of a simple strategy for ganging together multiple use statments for many Exporter-based modules into one, so that you can replace many lines of commonly used "use" statements with a single one. Note: automatic exporting is now frowned upon -- better to explicitly state what you want. =head2 EXPORT None by default. =cut use 5.8.0; use strict; use warnings; use Carp qw( carp cluck croak confess shortmess longmess ); use Data::Dumper qw( Dumper ); use File::Path qw( mkpath ); use File::Basename qw( fileparse basename dirname ); use File::Copy qw( copy move ); use Cwd qw( cwd abs_path ); require Exporter; our @ISA = qw(Exporter); our %EXPORT_TAGS = ( 'all' => [ qw( carp cluck croak confess shortmess longmess Dumper mkpath fileparse basename dirname copy move cwd abs_path ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # exported into callers namespace by default. # (don't use this without a very good reason.) our $VERSION = '0.01'; 1; =head1 SEE ALSO o The cpan module L<Toolkit> =head1 AUTHOR Joseph Brenner, E<lt>doom@kzsu.stanford.eduE<gt> =head1 COPYRIGHT AND LICENSE Copyright (C) 2009 by Joseph Brenner This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available. =head1 BUGS None reported... yet. =cut

Replies are listed 'Best First'.
A reply falls below the community's threshold of quality. You may see it by logging in.
A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2022-08-17 16:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?