निम्नलिखित कोड एक तरह से ठीक काम कर रहा है:मैं पर्ल पाइप से आउटपुट कैसे प्राप्त कर सकता हूं क्योंकि यह उपलब्ध हो जाता है?
open(PIPE, '-|', 'ant');
for(<PIPE>) {
print;
}
हालांकि, यह जो मैं चाहता भी नहीं करता है। चूंकि चींटी निर्माण में 5 मिनट लग सकते हैं, इसलिए मैं लाइन से आउटपुट लाइन देखना चाहता हूं। इसके बजाय, मुझे प्रक्रिया के अंत में पूरा इनपुट मिल रहा है।
पर्ल डीबगर के साथ यह को देखते हुए, पर्ल, बयान 'के लिए' पर इंतजार कर रहा है चींटी समाप्त जब तक। ऐसा क्यों है?
बफरिंग शायद समस्या है, लेकिन समस्याग्रस्त बफर चींटियों पर है, न कि पर्ल की। आपको केवल इनपुट पाइप पर आउटपुट पाइप पर बफरिंग बंद करने की आवश्यकता है।आपको चींटी को अपने आउटपुट को बफर न करने के लिए कुछ रास्ता खोजने की आवश्यकता होगी। आप पर्ल पक्ष पर समस्या को ठीक नहीं कर सकते हैं। – cjm