title: Perl - Subroutine redefined
body: <p>I have asked this question before or searched and seen others ask - why am I getting the warning "<em>Subroutine mySub redefined at ../lib/Common.pm line x</em>"? and you always get the answer <em>you declared the sub twice in the same code</em>.  I created this test package:</p>
  
  <p>ENTIRE FILE ---------------</p>
  
  <pre><code>package MyCommonPkg;
  
  use strict;
  
  sub thisSubroutineIsNotDefinedAnywhereElse{
  }
  
  1;
  </code></pre>
  
  <p>ENTIRE FILE ---------------</p>
  
  <p>and I USE this package from a perl script, which uses other packages, that use this package also, and I get the warning: </p>
  
  <p><em>Subroutine ThisSubroutineIsNotDefinedAnywhereElse redefined at ../lib/MyCommonPkg.pm line 19.</em></p>
  
  <p>I promise I did not declare this sub anywhere else.  So is this caused by a circular reference? How can I go about tracking the cause of this warning down and fixing?</p>