title: perl eval not catching errors
body: <p>the 'eval' block catches 'die' attempts. but in the code below, it fails to catch 'uninitialized value' exception.</p>
  
  <p>perl code - </p>
  
  <pre><code>#!/usr/bin/perl
  package poc::template;
  
  use strict;
  use warnings;
  use Log::Log4perl;
  
  my $log_conf = "../conf/log4perl.conf";
  Log::Log4perl::init($log_conf);
  my $logger = Log::Log4perl-&gt;get_logger();
  
  sub doSome {
      $logger-&gt;info('doing something');
      my $add = $ARGV[0] + 4;
  }
  
  #main
  $logger-&gt;info('start');
  eval { doSome(); };
  if ($@) {
      $logger-&gt;info('error');
  }
  $logger-&gt;info('stop');
  </code></pre>
  
  <p>here is the log conf - </p>
  
  <pre><code>log4perl.rootLogger              = DEBUG, SCREEN
  log4perl.appender.SCREEN         = Log::Log4perl::Appender::Screen
  log4perl.appender.SCREEN.stderr  = 0
  log4perl.appender.SCREEN.layout  = Log::Log4perl::Layout::PatternLayout
  log4perl.appender.SCREEN.layout.ConversionPattern = %d [%M:%L] %p  %F{2} - %m%n
  </code></pre>
  
  <p>here is the script output - </p>
  
  <pre><code>2013/02/03 16:47:02 [main:::18] INFO  template\POCTemplate.pl - start
  Use of uninitialized value $ARGV[0] in addition (+) at /POCPerl/template/POCTemplate.pl line 14.
  2013/02/03 16:47:02 [poc::template::doSome:13] INFO  template\POCTemplate.pl - doing something
  2013/02/03 16:47:02 [main:::23] INFO  template\POCTemplate.pl - stop
  </code></pre>
  
  <p>shouldn't this eval block catch that exception ?</p>