Thursday, 15 July 2010

perl - Getting an "Use of uninitialized value in string ne at..." even when checking that the value is defined -


मेरे पास निम्न कोड का कोड है जो perl में एक अपरिहार्य चेतावनी फेंकता है

चेतावनी: "का उपयोग स्ट्रिंग ने में uninitialized मान ....... "

  foreach my $ sub (@ {$ decoded- & gt; {सदस्यता}}} {मुद्रित STDERR डेटा :: Dumper :: डम्पर $ उप; अगर (परिभाषित $ उप और परिभाषित $ उप- & gt; {स्थिति} और $ उप- & gt; {स्थिति} ने 'सदस्यता रद्द') {पुश @ सदस्यताएं, $ उप; } Else {my $ nowDate = Lib :: समय :: getSQLTime (); $ अबडेट = ~ एस / / टी /; मेरी $ expireDate = $ sub- & gt; {next_charge_at}; मेरी $ subtract = str2time ($ expireDate) - str2time ($ nowDate); अगर ($ subtract & gt; 0) {पुश @ सदस्यता, $ उप; }}}   

मैं देख रहा हूं कि जिस मान की मुझे ज़रूरत है वह परिभाषित है, लेकिन फिर भी यह इस चेतावनी को फेंक रहा है और मुझे पूरा यकीन नहीं है कि यह क्यों कर रहा है।

$ sub का मान है:

  {'source' = & gt; 'Xxxxxx', 'बिलिंग_सिस्टम' = & gt; 'Xxxxxxx', '_id' = & gt; 'Xxxxxxxxxxxxxxxx', 'status' = & gt; 'सदस्यता रद्द', 'यूजरआइड' = & gt; Xxxxxx, 'बिलिंग_की_प्रकार' = & gt; 'एमएसआईएसडीएन', 'बनाया' = & gt; '2013-06-20T23: 02: 13', 'next_charge_at' = & gt; 2013-06-21T23: 02: 13 ',' उत्पाद '= & gt; 'Xxxxxx', 'बिलिंग_की' = & gt; 'Xxxxxxxxxxxxxxx'};   

जब मैंने 'ने' से 'ईक' बदल दिया तो यह उस चेतावनी को नहीं फेंक देता है, भले ही दोनों परीक्षणों के लिए मैं मूल्य के मुकाबले समान डेटा का उपयोग करता हूं। < P> मैंने भी जांच करने से पहले $ sub- & gt; {status} के मूल्य की छपाई करने की कोशिश की और यह 'सदस्यता रद्द' या 'सब्सक्राइब' या तो प्रदर्शित करता है, ताकि प्रत्येक बार जांच के लिए वह मूल्य खाली न हो।

क्या कोई मुझे इस के साथ मदद कर सकता है? मुझे बताएं कि आपको अधिक जानकारी की आवश्यकता है।

पहले से धन्यवाद:)

क्या यह संभव है कि आपके पास एक एल्सीफ़ खंड है? एल्सफ़फ़ में कुछ चेतावनियां अगर लाइन संख्या के साथ रिपोर्ट की जाएंगी।

No comments:

Post a Comment