title: perl - array of integers using way too much memory?
body: <p>When I run the following script:</p>
  
  <pre><code>my @arr = [1..5000000];
  
  for($i=0; $i&lt;5000000; $i++) {
          $arr[$i] = $i;
          if($i % 1000000 == 0) {
                  print "$i\n";
          }
  }
  </code></pre>
  
  <p>It consumes about 500 MB memory. Used to higher-level compiled languages I would expect it to be roughly 5M * 4B = 20MB (4 bytes per number).</p>
  
  <p>I guess that is because each value is a scalar, not a simple binary number. Is it possible to decrease memory footprint by treating those values as numbers, or is 500 MB for this task the only way?</p>