in reply to Re^2: Cannot catch ALRM signal for timeout
in thread Cannot catch ALRM signal for timeout

You make it sound like Perl launches a thread to fill the buffer

That's not what I meant.  Perl tries to fill the buffer whenever it's empty and something is attempting to read from it — which in this case is the eof, as you note.