in reply to Re: Re: Using tie to initialize large datastructures
in thread Using tie to initialize large datastructures

I think you are trying to solve the wrong problem.

First of all, gratuitous globals is a sign of a poor design. I would use an access function, and (depending on what made sense) I would have it memoize results. Much cleaner design, and your issue never arises. Unless your program is truly performance sensitive (the odds are very low that it is), trying to optimize before hand at the expense of maintainability is a losing game.

However the second issue is technical. In the middle of calling an implementation of a tie, you don't have access to information about the tie. A tie just replaces a data structure with a wrapper around an object. But from the point of view of the object call, it is just an object call. You are not told what variable you are being called with, and said variable may not even be in any scope you can access. (Think about tying a lexical variable.)

Now the technical issue I could find a hack around. But the maintainability issue makes me really not want to...

  • Comment on Re (tilly) 3: Using tie to initialize large datastructures