में प्रत्येक पंक्ति से एनएच और एमथ सीमांकित शब्दों को पकड़ना, नागोस में निगरानी करने के लिए मेजबान जोड़ने के अधिक कठिन तरीके के कारण (इसे किसी होस्ट ऑब्जेक्ट को परिभाषित करने की आवश्यकता है, जैसा कि पिछले प्रोग्राम के विपरीत है, आईपी और होस्टनाम), मुझे लगा कि यह स्वचालित करने के लिए सबसे अच्छा होगा, और पर्ल सीखने के लिए यह एक अच्छा समय होगा, क्योंकि इस समय मुझे पता है कि सी/सी ++ और जावा है।पर्ल:
फ़ाइल मैं इस तरह दिखता है से पढ़ें:
xxx.xxx.xxx.xxx hostname #comments. i.dont. care. about
सभी मैं पात्रों के पहले 2 गुच्छों हैं चाहता हूँ। ये स्पष्ट रूप से अंतरिक्ष सीमित हैं, लेकिन सामान्यता के लिए, यह कुछ भी हो सकता है। इसे अधिक सामान्य बनाने के लिए, पहले और तीसरे, या चौथे और दसवें क्यों नहीं? निश्चित रूप से कुछ रेगेक्स कार्रवाई शामिल होनी चाहिए, लेकिन इस पल के लिए मैं इस टैग को बंद कर दूंगा, बस मामले में।
मैं कहूंगा कि यह सूची असाइनमेंट करने के लिए अधिक मूर्खतापूर्ण है: उदाहरण के लिए, ($ ip, $ hostname) = ($ 1, $ 2) पहले मामले में, या ($ ip, $ hostname) = (विभाजन ', $ line) [0,1] दूसरे में। (0,1 सिर्फ तभी होता है जब लोग अन्य नंबरों का उपयोग करना चाहते हैं। यदि नहीं, ($ आईपी, $ होस्टनाम) = विभाजन '', $ लाइन ठीक काम करेगी। –
नहीं, अधिक मूर्खतापूर्ण "अगर (मेरा ($ ip, $ hostname) = $ line = ~/(\ S +) \ s + (\ S +) /) {" – ysth
आप दोनों सही हैं, लेकिन मुझे राय नहीं है कि idiomatic == बेहतर। – slim