in reply to POE::Filter::Line seems to be buffering ??? input from some command line programs but not others?

So it turns out that this can be easily reproduced by comparing the output of udevadm and udevadm | cat on the command line - udevadm is behaving exactly as Perl would when it is Suffering from Buffering (i.e. it's not entirely your program's fault). One fix appears to be adding the option Conduit => 'pty' or Conduit => 'pty-pipe' to the POE::Wheel::Run constructor, I've tested this with your code and it works. From the POE::Wheel::Run documentation: "The "pty" conduit type runs the child process under a pseudo-tty, which is created by IO::Pty. Pseudo-ttys (ptys) convince child processes that they are interacting with terminals rather than pipes", thus disabling the buffering in udevadm.

Replies are listed 'Best First'.
Re^2: POE::Filter::Line seems to be buffering ?
by KaiLoi (Initiate) on Oct 03, 2017 at 00:59 UTC
    Oh thank god! This fixed it perfectly. Thank you SO much! I was bashing my head against this. I had been pouring through the documentation on POE::Filter::Line figuring it must be something to do with the terminating character on the output from udevadm. Never occurred to me to look right up at Wheel::Run. I stared at this trying various things for hours last night. I figured it had to be something to do with the particular output of udevadm. I'm glad I wasn't insane. I shall be naming my firstborn after you now.