Andrew-
Many thanks for finding a workaround to this problem. As you
demonstrate, if you specify to POE::Kernel which event loop to use
(instead of letting it try to figure it out on it's own), then
everything works just fine! I don't know why POE::Kernel chooses the
incorrect one from the *.exe file, and the correct one from the *.pl
file, however, this is how you can force it to use the right one.
-Craig
On Apr 22, 2009, at 12:52 PM, Andrew Feren wrote:
I don't use Tk, but I do use perlapp and POE. The attached script
works compiled with perlapp and as a vanilla perl script. (By works
I mean no more error messages when compiled. The script still
doesn't *do* anything ;-)
The important magic seems to be
use POE qw (Loop::TkActiveState);
without including TkActiveState when you use POE Loop::Select seems
to be preferred.
The rest of the use statements are mostly to get perlapp to include
modules without a bunch of --add arguments.
-Andrew
Craig Votava wrote:
Rocco-
Thank you very much for continuing to help me on this issue. Nobody
else (activestate, perlmonks, netnews, etc) seems to be able to.
I started putting print statements in the POE kernel and various
Loop modules to see the differences between running the *.pl and
*.exe on Windows.
When running the *.pl I see POE::Loop::TkCommon -> POE::Loop::Tk ->
POE::Loop::TkActiveState
When running the *.exe I see POE::Loop::Select
Obviously, POE::Kernel cannot seem to realize it needs Tk when
running from the *.exe - I'm trying to figure out how that code
works now.
Any hints or pointers are appreciated!
Thanks
-Craig