title: Perl : Name "main::IN" used only once, but it is actually used
body: <p>I writing a short perl script that reads in a file. See <code>tmp.txt</code>:</p>
  
  <pre><code>1   gene_id "XLOC_000001";  gene_name "DDX11L1";    oId
  1   gene_id "XLOC_000001";  gene_name "DDX11L1";    oId
  1   gene_id "XLOC_000001";  gene_name "DDX11L1";    oId
  1   gene_id "XLOC_000001";  gene_name "DDX11L1";    oId
  </code></pre>
  
  <p>My perl program, <code>convert.pl</code> is : </p>
  
  <pre><code>use warnings;
  use strict;
  use autodie;        # die if io problem with file
  my $line;
  my ($xloc, $gene, $ens);
  open (IN, "tmp.txt")
      or die ("open 'tmp.txt' failed, $!\n");
  while ($line = &lt;IN&gt;) {
      ($xloc, $gene) = ($line =~ /gene_id "([^"]+)".*gene_name "([^"]+)"/);
      print("$xloc   $gene\n");
  }
  close (IN)
      or warn $! ? "ERROR 1" : "ERROR 2";
  </code></pre>
  
  <p>It outputs:</p>
  
  <pre><code> Name "main::IN" used only once: possible typo at ./convert.pl line 8.
   XLOC_000001   DDX11L1 
   XLOC_000001   DDX11L1 
   XLOC_000001   DDX11L1
   XLOC_000001   DDX11L1 
  </code></pre>
  
  <p>I used <code>IN</code>, so I don't understand the <code>Name "main::IN" used...</code> warning.  Why is it complaining?</p>