title: How do I start a new Perl module distribution?
body: <p>I'm trying to set up a large-ish project, written in Perl.  The <a href="http://www.ibm.com/developerworks/linux/library/l-make.html" rel="noreferrer">IBM MakeMaker tutorial</a> has been very helpful so far, but I don't understand how to link all the modules into the main program.  In my project root, I have <code>MANIFEST</code>, <code>Makefile.PL</code>, <code>README</code>, a <code>bin</code> directory, and a <code>lib</code> directory.  In my <code>bin</code> directory, I have my main script (<code>Main.pl</code>).  In the <code>lib</code> directory, I have each of my modules, divided up into their own respective directories (i.e. <code>Utils::Util1</code> and <code>Utils::Utils2</code> in the <code>utils</code> directory, etc).  In each module directory, there is also a <code>t</code> directory, containing tests</p>
  
  <p>My <code>MANIFEST</code> file has the following:</p>
  
  <pre><code>bin/Main.pl
  lib/Utils/Util1.pm
  lib/Utils/Util2.pm
  lib/Utils/t/Utils1.t
  lib/Utils/t/Utils2.t
  Makefile.PL
  MANIFEST
  README
  </code></pre>
  
  <p><code>Makefile.PL</code> is the following:</p>
  
  <pre><code>use ExtUtils::MakeMaker;
  WriteMakefile(
      'NAME'=&gt;'Foo',
      'VERSION_FROM'=&gt;'bin/Main.pl',
      'PREREQ_PM'=&gt;{
      "XML::Simple"=&gt; 2.18}, #The libraries that we need and their
                     #minimum version numbers
      'EXE_FILES' =&gt;[("bin/Main.pl")]
  );
  </code></pre>
  
  <p>After I make and run, the program crashes, complaining that it cannot find <code>Utils::Util1</code>, and when I run '<code>make test</code>, it says <code>no tests defined</code>.  Can anyone make any suggestions?  I have never done a large scale project like this in perl, and I will need to add many more modules</p>