This page describes the function of the various files and types of files you might find in a Perl module.
(file)
Script to build the module using ExtUtils::MakeMaker or Module::Install.
(file)
Instructions to "make" to build/test/install the module. This file is usually generated from Makefile.PL.
(file)
This file is a backup of Makefile which is made when the command "make clean" is performed.
(file)
This is a security feature which contains information you can use to make sure the module has not been tampered with.
(file)
Script to build the module using Module::Build.
(file)
Script to build the module. This is usually created from Build.PL.
(directory)
Directory where test files are stored.
(type of file)
Test files usually have the form "Something.t". They are Perl scripts but don't have a "shebang" or #!/usr/bin/perl line at the top.
These files are usually found in the t directory.
(directory)
Directory where the Perl modules usually go.
(directory)
"Build library", the directory where the modules are compiled.
(directory)
The directory where binary components go, e.g. the output of C files.
(directory)
The directory where modules are temporarily installed.
(directory)
The directory which contains installation modules for Module::Install.
(file)
A file which contains information about the module in YAML format. This information is used to index the module in CPAN.
(file)
A file which contains information about the module in JSON format.
(file)
A file automatically generated for installing the modules. See Perl Module Mechanics - pm_to_blib.
(file)
A file which maps C objects from an XS extension to forms which Perl understands.
(type of file)
Perl library files written in C ("extension").
(type of file)
Perl library files ("Perl modules"). These might be under the lib directory.
(file)
This file is used when creating a distribution. It contains a list of files to include in the distribution.
(file)
Files not to include in the distribution
Only the module author actually needs this file.
(directory)
Files to share using File::ShareDir.
(directory)
Executable scripts to install into the system "bin" directory.
(file)
File which you are supposed to read, but no-one does.
(file)
Record of changes made to the module.
(file)
The licence for the Perl module, e.g. GNU or Artistic.
(directory)
This directory contains test scripts which are used by the module developers, but not by people who are only using the module.
(file)
This file contains instructions for Dist::Zilla.
(file)
This file contains constants used by an XS file.
(file)
This file is to do with XS.
(type of file)
These are bootstrap files for DynaLoader, created when using XS files.
(type of file)
This is a compressed archive file which contains all the files of the distribution.
(type of file)
This is a C program file. It may have been generated from an XS file (*.xs).
(type of file)
These are documentation files in Perl's "POD" (Plain Old Documentation) format.
I wrote this page because I couldn't find an equivalent list elsewhere on the web. This page is meant to answer the question "what does that file do?" about files in a Perl module. It's not meant to be a guide to what you should do when creating a Perl module, so there is no advice here on the rights and wrongs of using various kinds of files or installations.
Readable information on Perl modules.
The "Perl Module Mechanics" page seems quite similar in intent to this one.