Simple CPAN-like module
Directory layout:
.
├── Changes
├── lib
│ └── MyTools.pm
├── Makefile.PL
├── MANIFEST.SKIP
├── README
└── t
└── 01-add.t
Changes
v0.02 2021.01.17
Test the add function.
v0.01 2021.01.16
First version released
Makefile.PL
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile
(
NAME => 'MyTools',
VERSION_FROM => 'lib/MyTools.pm',
LICENSE => 'perl',
PREREQ_PM => {
'Exporter' => '0',
},
TEST_REQUIRES => {
'Test::Simple' => '1.00',
},
);
MANIFEST.SKIP
# Avoid version control files.
\bRCS\b
\bCVS\b
,v$
\B\.svn\b
\B\.cvsignore$
# Avoid Makemaker generated and utility files.
\bMakefile$
\bblib
\bMakeMaker-\d
\bpm_to_blib$
\bblibdirs$
^MANIFEST\.SKIP$
# Avoid VMS specific Makmaker generated files
\bDescrip.MMS$
\bDESCRIP.MMS$
\bdescrip.mms$
# Avoid Module::Build generated and utility files.
\bBuild$
\bBuild.bat$
\b_build
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# Avoid Devel::Cover generated files
\bcover_db
# Avoid temp and backup files.
~$
\.tmp$
\.old$
\.bak$
\#$
\.#
\.rej$
# Avoid OS-specific files/dirs
# Mac OSX metadata
\B\.DS_Store
# Mac OSX SMB mount metadata files
\B\._
# Avoid archives of this distribution
\bMyTools-[\d\.\_]+
MYMETA.*
.git
README
A few words about the module
Maybe installation instructions.
lib/MyTools.pm
package MyTools;
use strict;
use warnings;
use 5.010;
use Exporter qw(import);
our @EXPORT_OK = qw(add);
our $VERSION = '0.02';
=head1 NAME
MyTools - some tools to show packaging
=head1 SYNOPSIS
Short example
=cut
sub add {
return $_[0] + $_[1];
}
sub multiply {
return $_[0] * $_[1];
}
1;
t/01-add.t
use strict;
use warnings;
use Test::Simple tests => 1;
use MyTools qw(add);
ok(add(2, 3) == 5, 'adding two numbers');