मुझे लगता है कि मुझे Params::Validate में एक बग का सामना करना पड़ा है, लेकिन मुझे यकीन नहीं है कि मैंने समस्याग्रस्त कोड टुकड़े को सही तरीके से पहचाना है या नहीं। प्रश्न में कोड श्रृंखला को अपवादित करने में विफल रहा (Try::Tiny का उपयोग करके), इसलिए मैंने डीबगिंग शुरू कर दी और पाया कि try
ब्लॉक के अंदर उपयोग की जाने वाली कक्षा में विनाशक है। यह विनाशक ऑब्जेक्ट विधियों को कॉल करता है जो Params::Validate
का उपयोग करते हैं और Validate.pm
source देख रहे हैं I [email protected]
स्थानीयकरण के बिना, यानी वैश्विक [email protected]
ओवरराइट हो जाता है।
अब मैं दो विकल्प देखेंगे:
Params::Validate
हमेशा[email protected]
स्थानीय बनाना चाहिए और इस तरह यह एक बग है कि सूचित किया जाना चाहिए है।- बग प्रश्न में कक्षा में है, क्योंकि इसे किसी विनाशक में
Params::Validate
का उपयोग नहीं करना चाहिए।Params::Validate
अभी भी रह सकता है।
यह कौन सा है? मुझे इस स्थिति को कैसे संभालना चाहिए?
पीएस: मुझे लगता है कि सीपीएएन मॉड्यूल रॉक-ठोस होना चाहिए और न तो खुद को और न ही उनके पर्यावरण को तोड़ना चाहिए, इसलिए सवाल शीर्षक।
सटीक होने के लिए, इसका उपयोग हमारे ढांचे के कोड में किया जाता है और मेरा विभाग ढांचे के लिए जिम्मेदार नहीं है। तो, हां, परीक्षण की कमी है, लेकिन मेरे हिस्से या सहयोगी की समस्या नहीं है, जिसने समस्या की खोज की - वह अपने कोड का परीक्षण कर रहा था और सोच रहा था कि उसके अपवाद प्रचार में क्यों विफल रहे। –