Keep It Simple, Stupid | |
PerlMonks |
Re2: MOPT-04 - identification, part 2by mstone (Deacon) |
on Jan 08, 2003 at 01:52 UTC ( [id://225140]=note: print w/replies, xml ) | Need Help?? |
That would create a new function at runtime, but it wouldn't follow the rules of dynamic scoping (see MOPT-03 for details). As you've used it, the eval() just binds a new function to the name 'func'. To be dynamic, the new version of func() would have to be restricted to the evaluation context of the function that defined it:
returns:
which shows the difference between redefining a globally-scoped function and re-binding a dynamically-scoped variable.
Yes, that would work:
returns:
which does the right thing. But to get the effect of a dynamically-scoped function, you have to use a dynamically scoped (aka: local) variable, and I did say that in the original article. HOWEVER.. check out the next reply to see how I was, in fact, wrong.
In Section
Meditations
|
|