|
|
| go ahead... be a heretic | |
| PerlMonks |
Re2: MOPT-04 - identification, part 2by mstone (Deacon) |
| on Jan 08, 2003 at 01:52 UTC ( #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
|
|
||||||||||||||||||||