पर्ल में तुलना मूल्यों के लिए एक शुरुआती गाइड

पर्ल तुलना ऑपरेटरों कभी-कभी नए पर्ल प्रोग्रामर को भ्रमित कर सकते हैं। भ्रम इस तथ्य से उपजा है कि पर्ल के पास वास्तव में तुलना ऑपरेटरों के दो सेट हैं - एक तुलना के लिए संख्यात्मक मान और सूचना इंटरचेंज (ASCII) मूल्यों के लिए स्ट्रिंग अमेरिकन स्टैंडर्ड कोड की तुलना करने के लिए एक।

चूंकि तुलनात्मक संचालकों का उपयोग आमतौर पर तार्किक कार्यक्रम प्रवाह को नियंत्रित करने और महत्वपूर्ण निर्णय लेने के लिए किया जाता है, का उपयोग करके आपके द्वारा परीक्षण किए जा रहे मान के लिए गलत ऑपरेटर विचित्र त्रुटियों और डीबगिंग के घंटों को जन्म दे सकता है, यदि आप सावधान नहीं हैं।

याद रखने के लिए कुछ अंतिम क्षणों के लिए इस पृष्ठ के सबसे निचले भाग में जो लिखा है उसे पकड़ना न भूलें।

बराबरी, बराबरी नहीं

एक मान दूसरे मान के बराबर है या नहीं, यह देखने के लिए सबसे सरल और शायद सबसे अधिक इस्तेमाल किया तुलना ऑपरेटर परीक्षण करते हैं। यदि मान समान हैं, तो परीक्षण सही है, और यदि मान समान नहीं हैं, तो परीक्षण गलत है।

दो की समानता के परीक्षण के लिए संख्यात्मक मान, हम तुलना ऑपरेटर का उपयोग करते हैं ==. दो की समानता के परीक्षण के लिए तार मान, हम तुलना ऑपरेटर का उपयोग करते हैं eq (बराबरी का)।

instagram viewer

यहाँ दोनों का एक उदाहरण दिया गया है:

अगर (5 == 5) {प्रिंट "== संख्यात्मक मानों के लिए \ n"; }
अगर ('मो' 'इक' मो ') {प्रिंट "eq (EQual) स्ट्रिंग मानों के लिए \ n"; } 

विपरीत के लिए परीक्षण, समान नहीं, बहुत समान है। याद रखें कि यह परीक्षा वापस आ जाएगी सच यदि परीक्षण किए गए मान हैं नहीं एक दूसरे के बराबर। यह देखने के लिए कि क्या दो संख्यात्मक मान हैं नहीं एक दूसरे के बराबर, हम तुलना ऑपरेटर का उपयोग करते हैं !=. यह देखने के लिए कि क्या दो तार मान हैं नहीं एक दूसरे के बराबर, हम तुलना ऑपरेटर का उपयोग करते हैं ne (बराबर नहीं)।

अगर (5! = 6) {प्रिंट "! = संख्यात्मक मानों के लिए \ n"; }
अगर ('मो' ने 'कर्ली') {प्रिंट "ने (न के बराबर) स्ट्रिंग मान के लिए \ n"; } 

ग्रेटर थान, ग्रेटर थान या बराबर टू

अब देखते हैं से अधिक तुलना ऑपरेटरों। इस पहले ऑपरेटर का उपयोग करके, आप यह देखने के लिए परीक्षण कर सकते हैं कि क्या एक मूल्य दूसरे मूल्य से अधिक है। यह देखने के लिए कि क्या दो संख्यात्मक मान एक दूसरे से अधिक हैं, हम तुलना ऑपरेटर का उपयोग करते हैं >. यह देखने के लिए कि क्या दो तार मान एक दूसरे से अधिक हैं, हम तुलना ऑपरेटर का उपयोग करते हैं जीटी (से अधिक)।

अगर (5> 4) {प्रिंट "> संख्यात्मक मानों के लिए \ n"; }
अगर ('B' gt 'ए') {प्रिंट "gt (ग्रेटर थान) स्ट्रिंग मानों के लिए \ n"; } 

आप के लिए भी परीक्षण कर सकते हैं इससे बड़ा या इसके बराबर, जो बहुत समान दिखता है। ध्यान रखें कि यह परीक्षण वापस आ जाएगा सच यदि परीक्षण किए गए मान एक-दूसरे के बराबर हैं, या यदि बाईं ओर का मान दाईं ओर के मान से अधिक है।

यह देखने के लिए कि क्या दो संख्यात्मक मान एक दूसरे से अधिक या बराबर हैं, हम तुलना ऑपरेटर का उपयोग करते हैं >=. यह देखने के लिए कि क्या दो तार मान एक दूसरे से अधिक या बराबर हैं, हम तुलना ऑपरेटर का उपयोग करते हैं जीई (ग्रेटर-इक्वेल-टू)।

अगर (5> = 5) {प्रिंट "> = संख्यात्मक मानों के लिए \ n"; }
अगर ('बी' जीई 'ए') {प्रिंट "जीई (ग्रेटर-थान-बराबर) से स्ट्रिंग मानों के लिए \ n"; } 

इससे कम, कम से कम या बराबर

कई प्रकार के तुलना ऑपरेटर हैं जिनका उपयोग आप अपने पर्ल कार्यक्रमों के तार्किक प्रवाह को निर्धारित करने के लिए कर सकते हैं। हमने पहले ही पर्ल न्यूमेरिकल तुलना ऑपरेटरों और पर्ल स्ट्रिंग तुलना ऑपरेटरों के बीच अंतर पर चर्चा की है, जो नए पर्ल प्रोग्रामर्स के लिए कुछ भ्रम पैदा कर सकता है। हमने यह भी सीखा है कि कैसे बताया जाए कि दो मान एक दूसरे के बराबर हैं या नहीं, और हमने सीखा है कि कैसे बताया जाए कि दो मान एक दूसरे से अधिक या बराबर हैं।

आइए नजर डालते हैं से कम तुलना ऑपरेटरों। इस पहले ऑपरेटर का उपयोग करके, आप यह देखने के लिए परीक्षण कर सकते हैं कि क्या एक मान है से कम एक और मूल्य। यह देखने के लिए कि क्या दो संख्यात्मक मान हैं से कम एक दूसरे, हम तुलना ऑपरेटर का उपयोग करते हैं <. यह देखने के लिए कि क्या दो तार मान हैं से कम एक दूसरे, हम तुलना ऑपरेटर का उपयोग करते हैं lt (से कम)।

अगर (4 <5) {प्रिंट "
अगर ('A' lt 'B') {प्रिंट "lt (लेस थान) स्ट्रिंग मानों के लिए \ n"; } 

आप इसके लिए परीक्षण भी कर सकते हैं, से कम या बराबर, जो बहुत समान दिखता है। याद रखें कि यह परीक्षा वापस आ जाएगी सच यदि परीक्षण किए गए मान एक दूसरे के बराबर हैं, या यदि बाईं ओर का मूल्य दाईं ओर के मान से कम है। यह देखने के लिए कि क्या दो संख्यात्मक मान हैं से कम या बराबर एक दूसरे, हम तुलना ऑपरेटर का उपयोग करते हैं <=. यह देखने के लिए कि क्या दो तार मान हैं से कम या बराबर एक दूसरे, हम तुलना ऑपरेटर का उपयोग करते हैं le (कम से कम बराबर-से)।

 अगर (5 <= 5) {प्रिंट "<= संख्यात्मक मान के लिए \ n"; }
अगर ('ए' ले 'बी') {प्रिंट "ले (कम से कम समान-से) स्ट्रिंग मानों के लिए \ n"; } 

तुलना संचालकों पर अधिक जानकारी

जब हम स्ट्रिंग मानों के एक दूसरे के बराबर होने की बात करते हैं, तो हम उनके ASCII मानों की चर्चा कर रहे हैं। तो, कैपिटल अक्षर तकनीकी रूप से लोअरकेस अक्षरों से कम होते हैं, और अक्षर जितना अधिक होता है, वर्णमाला में उतना ही अधिक होता है।

सुनिश्चित करें कि आप अपने ASCII मूल्यों की जांच कर रहे हैं यदि आप स्ट्रिंग्स के आधार पर तार्किक निर्णय लेने की कोशिश कर रहे हैं।