पर्ल में एसटीडीआईएन बफर को साफ़ करने का कोई तरीका है? मेरे कार्यक्रम का एक हिस्सा लंबा आउटपुट (किसी के लिए कुछ पात्रों में प्रवेश करने के लिए पर्याप्त समय है) और उस आउटपुट के बाद मैं इनपुट मांगता हूं, लेकिन यदि आउटपुट के दौरान वर्ण दर्ज किए गए थे, तो इनपुट में जो कुछ भी दर्ज किया गया है, वे "tacked" हैं अंश। यहां मेरी समस्या का एक उदाहरण दिया गया है:फ्लशिंग पर्ल एसटीडीआईएन बफर
for(my $n = 0; $n < 70000; $n++){
print $n . "\n";
}
chomp(my $input = <STDIN>);
print $input . "\n";
आउटपुट में लूप के आउटपुट के दौरान दर्ज किए गए किसी भी वर्ण शामिल होंगे। मैं या तो एसटीडीआईएन को कैसे अक्षम कर सकता हूं या एसटीडीआईएन बफर फ्लश कर सकता हूं (या किसी अन्य तरीके से इसे कॉल करने से पहले अतिरिक्त वर्णों को एसटीडीआईएन में डालने की इजाजत नहीं दी जा सकती है)?
ठीक है, मैं अब 3 दिनों के लिए इस प्रश्न का उत्तर की तलाश में था (नहीं हर घंटे हर दिन, लेकिन मैं कम से कम 3 या 4 घंटे प्रति दिन कहूंगा) और अभी तक कोई जवाब नहीं मिला है, वास्तव में मैंने अपने सहयोगियों से पूछा, जो पर्ल को भी जानते हैं और उनका उपयोग करते हैं, और वे या तो नहीं जानते हैं, इसलिए मुझे विश्वास है कि मैंने आपके द्वारा लगाए गए प्रयासों की तुलना में अधिक प्रयास किए हैं, मैंने कहा है कि, क्या आपको कोई विचार है कि मैं जो पूछ रहा हूं उसे कैसे करना है? क्योंकि मैंने लगभग 3 दिन पहले आपके लिंक को देखा है, उन कार्यों को इस तरह से कार्यान्वित करने का प्रयास किया है जो तर्कसंगत रूप से इस समस्या को ठीक करेगा, और यह काम नहीं करता है। – mcwillig
'आईओ :: हैंडल का उपयोग करें; एसटीडीआईएन-> ऑटोफ्लश (1); ' –
आपके उत्तर के लिए धन्यवाद, लेकिन, इसने समस्या को ठीक नहीं किया है, मुझे भी याद है कि ऑटोफ्लश पढ़ने और फ्लश आउटपुट के लिए केवल अच्छे हैं, जैसे एसटीडीईआरआर और एसटीडीओयूटी के रूप में, इनपुट नहीं। जब मैंने आपके द्वारा सुझाए गए प्रयासों की कोशिश की, तो मुझे अभी भी लूप के आउटपुट के दौरान दर्ज किए गए पात्र और साथ ही मैंने एसटीडीआईएन में जो भी दर्ज किया था, उसे प्राप्त किया। – mcwillig