My personal preference is to create a distribution for the reusable modules at a company. I have had good luck with the module-starter tool, which is provided by Module::Starter.
For example:
module-starter --email "thil@something.com" --author "Thil" --module "
+Foo::Bar"
This creates a Foo-Bar directory with the following structure:
Foo-Bar/
|-- Changes
|-- MANIFEST
|-- Makefile.PL
|-- README
|-- lib
| `-- Foo
| `-- Bar.pm
`-- t
|-- 00-load.t
|-- boilerplate.t
|-- pod-coverage.t
`-- pod.t
The Makefile.PL is generated as follows:
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Foo::Bar',
AUTHOR => 'Thil <thil@something.com>',
VERSION_FROM => 'lib/Foo/Bar.pm',
ABSTRACT_FROM => 'lib/Foo/Bar.pm',
PL_FILES => {},
PREREQ_PM => {
'Test::More' => 0,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }
+,
clean => { FILES => 'Foo-Bar-*' },
);
Once you add the modules to your lib/ tree you can make a distribution tarball very easily. After that is done you could add these modules to a local CPAN server and use CPAN, or use the CPAN module's API to install locally.
Personally I use a shell script that I wrote awhile ago. I have a 90% rewritten perl version of the same, but I keep getting distracted. |