When the _default events gets triggered it seems blow up. default caught _child with (create POE::Session=ARRAY(0x872f2dc) 0) at ../test.pl line 843. 1: POE::Session /home/jasonb/src/poe/poe/blib/lib/POE/Session.pm 598 HTTPServer::_default 1 0 (undef) (undef) 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2: POE::Kernel /home/jasonb/src/poe/poe/blib/lib/POE/Kernel.pm 991 POE::Session::_invoke_state 1 0 (undef) (undef) 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 3: POE::Kernel /home/jasonb/src/poe/poe/blib/lib/POE/Kernel.pm 1026 POE::Kernel::_dispatch_event 1 (undef) (undef) (undef) 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4: POE::Kernel /home/jasonb/src/poe/poe/blib/lib/POE/Kernel.pm 1406 POE::Kernel::_dispatch_event 1 (undef) (undef) (undef) 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ....... Event: trapped error in `?? Kernel.pm:718': Modification of non-creatable array value attempted, subscript -1 at ./test.pl line 847.
The code for _default is: sub _default { warn "default caught $_[ARG0] with (@{$_[ARG1]})"; my $i = 0; while (1) { my @xyz = map { defined($_) ? $_ : '(undef)' } caller($i++); $xyz[-1] = unpack 'B*', $xyz[-1]; last unless @xyz; warn "$i: @xyz\n"; } return 0; } It works fine in followtail.perl, but it locks up in my script. Maybe it's because I'm using 'Event'? Actually, when I CTRL-C followtail.perl I get: *** spin! *** default caught _signal with (INT) at followtail.perl line 130. 1: POE::Session /usr/share/perl5/POE/Session.pm 582 main::__ANON__ 1 0 (undef) (undef) 0 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 2: POE::Kernel /usr/share/perl5/POE/Kernel.pm 927 POE::Session::_invoke_state 1 0 (undef) (undef) 0 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 3: POE::Kernel /usr/share/perl5/POE/Kernel.pm 883 POE::Kernel::_dispatch_state 1 (undef) (undef) (undef) 0 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 4: POE::Kernel macro substrate_main_loop (defined in /usr/share/perl5/POE/Kernel/Select.pm at line 394) invoked from /usr/share/perl5/POE/Kernel.pm 1159 POE::Kernel::_dispatch_state 1 (undef) (undef) (undef) 0 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 5: main followtail.perl 164 POE::Kernel::run 1 (undef) (undef) (undef) 0 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 Use of uninitialized value in unpack at followtail.perl line 134. Modification of non-creatable array value attempted, subscript -1 at followtail.perl line 134. (in cleanup) Can't use an undefined value as a symbol reference at /usr/share/perl5/POE/Kernel.pm line 2289 during global destruction. ..... All this is with the latest POE CVS.