title: Why does awk "not in" array work just like awk "in" array?
body: <p>Here's an awk script that attempts to set difference of two files based on their first column:</p>
  
  <pre><code>BEGIN{
      OFS=FS="\t"
      file = ARGV[1]
      while (getline &lt; file)
          Contained[$1] = $1
      delete ARGV[1]
      }
  $1 not in Contained{
      print $0
  }
  </code></pre>
  
  <p>Here is TestFileA:</p>
  
  <pre><code>cat
  dog
  frog
  </code></pre>
  
  <p>Here is TestFileB:</p>
  
  <pre><code>ee
  cat
  dog
  frog
  </code></pre>
  
  <p>However, when I run the following command:</p>
  
  <pre><code>gawk -f Diff.awk TestFileA TestFileB
  </code></pre>
  
  <p>I get the output just as if the script had contained "in":</p>
  
  <pre><code>cat
  dog
  frog
  </code></pre>
  
  <p>While I am uncertain about whether "not in" is correct syntax for my intent, I'm very curious about why it behaves exactly the same way as when I wrote "in".</p>