while ($sel->can_read) { sysread($fh, $buffer, 2048, length($buffer)); next unless $buffer =~ /^(EOT|DONE)$/m; ....(process $buffer) }