On Tue, Feb 08, 2000 at 05:26:08PM +0100, [EMAIL PROTECTED] wrote:
> Hm, on the other hand, while writing this a thought arrived: this special kind of
> difficulties only occurs if I watch READ access, doesn't it? If I would have limited
> the watcher to write accesses, only a single callback would have been performed. So
> I assume most variable watchers will watch write access. So the problem could be
> "solved" by documenting that it is EXTREMELY difficult to use READ var watchers,
> that a user should expect MANY callback invokations which almost noone can predict,
> and that he should check the events "got" attribute very carefully in such callbacks
> to avoid multiple actions for the same event. (Of course, this is only a solution if
> we can be sure that ALL perl statements which MODIFY a variable result in only ONE
> internal write access. Am I right?)

How's this?

  Var watchers generate events when the given variable is read from or
  written to.  As perl is a concise language, it is often difficult to
  predict when a variable will be read.  For this reason, variable
  watchers should poll for writes unless you know what you are doing.

> > The implicit join does another read of the variable.
> 
> Ah, thanks for your research!
> 
> I assume the second implicit join() was optimized by the runtime engine?

Eh?  Which join are you talking about?  When you have:

  warn "a"."b"."c";

It turns into:

  warn join('',"a","b","c");

-- 
"May the best description of competition prevail."
           via, but not speaking for Deutsche Bank

Reply via email to