<div>Running in perl 5.10.1 shows:</div>
<div> </div>
<div>initial value: initial</div>
<div>the new value: new value</div>
<div>check_value_exported_sub sees:</div>
<div>exported_variable: initial</div>
<div>check_value_local_def sees:</div>
<div>exported_variable: new value</div>
<div> </div>
<div>that is, same as what you saw in 5.10.0</div>
<div> </div>
<div>Based on the perlsub section &quot;Temporary Values via local()&quot;:</div>
<div>       A &quot;local&quot; modifies its listed variables to be &quot;local&quot; to the enclosing<br>       block, &quot;eval&quot;, or &quot;do FILE&quot;--<u>and to any subroutine called from within<br></u>       <u>that block</u>.  A &quot;local&quot; just gives temporary values to global (meaning<br>

       package) variables.  It does not create a local variable.  This is<br>       known as dynamic scoping.  ...</div>
<div> </div>
<div>Emphasis is in the original perldoc. So it looks like a bug to me too. Bring it to the monks.</div>