title: What does __PACKAGE__->{foo} mean?
body: <p>I'm refactoring a perl module in legacy code, and this is a function from the module:    </p>
  
  <pre><code>sub get_user {
      my $user = __PACKAGE__-&gt;{user};
      if (!defined $user) {
         # more code
         __PACKAGE__-&gt;{user} = $user;
      }
      return $user;
  }
  </code></pre>
  
  <p>This module compiles under <code>use strict</code>. And there's no package variables defined.
  What does <code>__PACKAGE__-&gt;{user}</code> mean?</p>