in reply to Re^3: Tkx after coderef problem
in thread Tkx after coderef problem

The word is operator. If it's not an operator what is it a puppy?

It is not a puppy, it is a "dereferencing symbol"
"Because of being able to omit the curlies for the simple case of $$x , people often make the mistake of viewing the dereferencing symbols as proper operators"

"which sub is rAising invalid command?" It is the Tkx::after command that is raising invalid command when its time has arrived to actually call its argument.

"What command where?"The command is the one created by $tkxfsr->{after}{$afterid}{sub}=sub{ ...}; since the code address match.

"What is undefinex at time of sub call? " Nothing is actually undefined at the time of the call, but for some reason the execution part of Tkx:after thinks it is.

Replies are listed 'Best First'.
Re^5: Tkx after coderef problem
by Anonymous Monk on Jun 02, 2018 at 17:27 UTC
    Think about what youre saying. Which edact callback. Eval...warn$@

      "Which edact callback. Eval...warn$@ "HUH?

      Possibly the answer is the "callback generated by $send_id=Tkx::after( $delay ,       $tkxfsr->{after}{$afterid}{sub} ); " but it is hard to tell what you are saying, maybe you need to think about what you are saying instead. And remember both methods work just fine on windows, just not on linux.

      What are you trying to say by "Eval...warn$@"

        That code generates no subroutine. Eliminate the doubts. Identify the exact line that fails in the subroutine. If you need to wrap the entire sub in eval to get something more than the generic failed to callback . You have three calls to after.