2009-11-09 16 views
8

मेरी प्रोजेक्ट में मैं वर्तमान में विरासत कोड से नए, सही ढंग से डिज़ाइन किए गए और परीक्षण मॉड्यूल तक एक चरण-दर-चरण कदम तैयार कर रहा हूं। चूंकि प्रत्येक साथी प्रोग्रामर जो कुछ भी करता है, वह बारीकी से पालन नहीं करता है, इसलिए पुराने कोड का उपयोग होने पर मैं चेतावनियों को उत्सर्जित करना चाहता हूं। मैं पुराने कोड को पोर्ट करने के तरीके पर सिफारिशों को आउटपुट करने में सक्षम होना पसंद करता हूं।मैं पर्ल कोड को बहिष्कृत के रूप में कैसे चिह्नित कर सकता हूं?

मैं इसे करने के दो तरीके मिल गया है:

  1. Attribute::Deprecated, जो कार्यों के लिए ठीक है, बल्कि बोझिल यदि एक पूरा मॉड्यूल पदावनत किया गया है। इसके अलावा, चेतावनियों के अलावा कोई अतिरिक्त जानकारी नहीं है।

  2. Perl::Critic::Policy::Modules::ProhibitEvilModules मॉड्यूल के लिए या शायद कस्टम Perl::Critic फ़ंक्शन या विधि स्तर पर बेहतर बहिष्करण के लिए नियम। यह विधि ठीक है, लेकिन यह कोड से तुरंत स्पष्ट नहीं है कि इसे बहिष्कृत किया गया है।

कोई अन्य सुझाव या चालें इसे ठीक से और आसान कैसे करें?

उत्तर

16

विधियों और कार्यों के लिए, आप केवल फ़ंक्शन के शरीर को एक चेतावनी और पसंदीदा फ़ंक्शन पर कॉल के साथ प्रतिस्थापित कर सकते हैं।

perl perllexwarn निम्न उदाहरण देता है:

package MyMod::Abc; 

sub open { 
    warnings::warnif("deprecated", 
    "open is deprecated, use new instead"); 
    new(@_); 
} 

sub new { 
    # ... 
} 
1; 

आप एक पूरे मॉड्यूल का बहिष्कार कर रहे हैं, तो मॉड्यूल में एक BEGIN ब्लॉक में चेतावनी डाल दिया।

आप import विधि (उदा। Win32::GUI::import) में चेतावनियां भी डाल सकते हैं: यह सब ठीक उसी पर निर्भर करता है जो आप करना चाहते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे