मेरे पास कमांड एक्जीक्यूशन की लाइनें निम्नानुसार हैं:
2806 I deep Sd_bordeaux 117: 02: 40 IDLE कोई नहीं 2807 मैं गहरी sd_bordeaux 17:02:40 आईडीले कोई नहीं 2808 मैं गहरी sd_coddeaux 117: 02: 40 IDLE सभी 2809 मैं rahul sd_coddeaux 117: 02: 40 IDLE सभी
< P> मैंने कमांड को चलाने के लिए कमांड को चलाने के लिए कमांड को चलाने के लिए लिखा है और उसे सरणी @ लाइनों में संग्रहित करने और निर्दिष्ट परिस्थितियों को प्राप्त करने के लिए regex का उपयोग करना है। लेकिन मुझे वांछित परिणाम नहीं मिल रहा है <पूर्व> मेरी $ command = qx | p4 मॉनिटर शो -अल | | मेरी $ kill_id; मेरे @lines = विभाजन ("\ n", $ आदेश); मेरी $ पंक्ति (@lines) के लिए {अगले अगर नहीं $ लाइन = ~ / (\ d +) \ s + /; मेरी $ आईडी = $ 1; अगर ($ line = ~ / sd_bordeaux \ s + (\ d +): \ d +: \ d + \ s + / और $ पंक्ति = ~ / आईडीएल \ s + none $ /) {my $ hours = $ 1; प्रिंट "$ घंटे"; प्रिंट "\ n"; }
}
मुझे कोई त्रुटि मिल रही है
आरंभिक मान का उपयोग $ घंटे की स्ट्रिंग में ./p4.pl < / कोड> मुझे "2806" और "2807" संख्या $ आईडी के रूप में प्राप्त करने में दिलचस्पी है और पहले अंक "117" & amp; "17" के रूप में $ घंटे।
कृपया कुछ मदद कर सकते हैं जहां मैं गलत हो रहा हूं। धन्यवाद।
$ 1
इसमें सबसे हाल ही में सफल होने वाले पहले कब्जा से मिलान किया गया था Regex match।
जब आप त्रुटि प्राप्त करते हैं, तो सबसे हाल ही में सफल मिलान / IDLE \ s + none $ /
के खिलाफ था, जिसमें कोई कैप्चर नहीं है।
निम्नलिखित समतुल्य होगा:
यदि ($ line = ~ / sd_bordeaux \ s + (\ d +): \ d +: \ d + \ s + /) {my $ hours = $ 1; अगर ($ पंक्ति = ~ / आईडीईई \ s + कोई भी $ /) {प्रिंट "$ घंटे \ n"; }}
लेकिन ऐसा लगता है कि आपको निम्न की आवश्यकता है:
यदि ($ line = ~ / sd_bordeaux \ s + (\ d +): \ D +: \ d + \ s + IDLE \ s + कोई भी $ /) {my $ hours = $ 1; प्रिंट "$ घंटे \ n"; }
यह समस्या बताता है और इसे कैसे हल किया जाए, लेकिन गैरी एक अधिक पढ़ें।
No comments:
Post a Comment