Các mã sau đây được làm việc loại tốt:Làm cách nào để lấy kết quả đầu ra từ ống Perl khi nó có sẵn?
open(PIPE, '-|', 'ant');
for(<PIPE>) {
print;
}
Tuy nhiên, nó không làm những gì tôi muốn. Kể từ khi xây dựng Ant có thể mất 5 phút, tôi muốn xem dòng đầu ra của dòng. Thay vào đó, tôi nhận được toàn bộ đầu vào ở cuối quá trình.
Nhìn vào nó bằng trình gỡ lỗi Perl, Perl đợi câu lệnh 'for', cho đến khi Ant kết thúc. Tại sao vậy?
Đệm có thể là vấn đề, nhưng bộ đệm có vấn đề nằm ở phía Ant, không phải của Perl. Bạn chỉ cần tắt đệm trên đường ống đầu ra, không phải đường ống đầu vào.Bạn sẽ cần phải tìm cách nào đó để báo cho Ant không được đệm đầu ra của nó. Bạn không thể khắc phục sự cố ở phía bên Perl. – cjm