title: Perl eval strange case
body: <p>Ubuntu 12.04.3 LTS
  Perl 5.14.2</p>
  
  <p>we have a strange bug in production.
  it is 100% reproduced and is fixed by 
  making additional block-eval over it.</p>
  
  <p>Reproduced yet bug in these situations:</p>
  
  <p>1) <code>eval { &lt;some-code&gt;; &lt;die or Carp::confess&gt;; }</code></p>
  
  <p>die or Carp::confess terminate process (eval doesn't help)</p>
  
  <p>so making 
  this like: 
  <code>eval { eval { &lt;some-code&gt;; &lt;die or Carp::confess&gt;; } $@ &amp;&amp; die $@; }</code> 
  helps</p>
  
  <p>2) 
  <code>our %ENV</code> resets %ENV
  so making <code>eval { our %ENV; }</code> helps</p>
  
  <p>I suspect this strange case is because of some
   our xs-modules, but can't find the reason.</p>
  
  <p>Will appreciate any suggestions or hints</p>
  
  <p>I can't post any code, cause it is reproduced deeply in codebase.
  Simple 1-liners don't reproduce it.</p>
  
  <p>Also I noticed that problem is fixed by not including some xs-modules.</p>
  
  <p>P.S. I suppose this question is more for 
  interaction between perl-internals and perl-xs, than pure-perl</p>