title: Array element automatically set to undef won't change when aliased?
body: <p>Relating to <a href="https://stackoverflow.com/q/18090182/557306">this</a>  question, what's the difference between  a manually set
  to <code>undef</code> list element and one that was  set by Perl when growing the size of
  that  list by  assigning to  a bigger  index than  the list  size, when  being
  aliased? For example, considering this code:</p>
  
  <pre><code>@a = (undef, 0);
  @b = ();
  $b[1] = 0;
  
  print Dumper(@a), "\n", Dumper(@b);
  </code></pre>
  
  <p>It prints (as expected, I think):</p>
  
  <pre><code>$VAR1 = undef;
  $VAR2 = 0;
  
  $VAR1 = undef;
  $VAR2 = 0;
  </code></pre>
  
  <p>So, aren't the arrays the same? Apparently not:</p>
  
  <pre><code>sub change { $_[0] = 1 }
  change(@a); change(@b);
  print Dumper(@a), "\n", Dumper(@b);
  </code></pre>
  
  <p>Which prints:</p>
  
  <pre><code>$VAR1 = 1;
  $VAR2 = 0;
  
  $VAR1 = undef;
  $VAR2 = 0;
  </code></pre>