On approximately 7/28/2004 12:47 PM, came the following characters from
the keyboard of Alan Stewart:

Win32::MB_ICONQUESTION is coded as a sub, so the syntax with the & works at the first level. It appears that the extra level of eval in PAR makes it look like the equivalent of:

   $flags = 4 | & 32;

which is not legal, and gives the error:

   Undefined subroutine &main::32 called at ...

I don't know how this happens and still gives the name MB_ICONQUESTION in the error message.

Since I get MB_ICONQUESTION in the error, this probably isn't what happened. What happened is the code in question doesn't usually get executed, and I didn't have a "use Win32;" anywhere. Due to other PAR issues, the code got executed unexpectedly, and the lack of use Win32 reared its head.


Anyway, you can't rely on the constant being implemented as a sub, and as Rob said, it is not neccessary.

Really? How else can one implement constants and not make them a sub? I was under the impression that even "use constant..." created subs...


Alan Stewart

-- Glenn -- http://nevcal.com/ =========================== The best part about procrastination is that you are never bored, because you have all kinds of things that you should be doing.



Reply via email to