मैं रूबी/Oniguruma में एक पक्ष प्रभाव है कि 4 में से 1 मालूम होता है बराबर बयान में ही मौजूद है ध्यान दिया है। क्यों चर day
009
में परिभाषित किया गया है, लेकिन 003
, 005
या 007
में नहीं?= ~ ऑपरेटर को कभी-कभी दुष्प्रभाव क्यों होते हैं?
irb(main):001:0> r = /(?<day>\d\d):(?<mon>\d\d)/
=> /(?<day>\d\d):(?<mon>\d\d)/
irb(main):002:0> r =~ "24:12"
=> 0
irb(main):003:0> day
NameError: undefined local variable or method `day'
irb(main):004:0> "24:12" =~ r
=> 0
irb(main):005:0> day
NameError: undefined local variable or method `day'
irb(main):006:0> "24:12" =~ /(?<day>\d\d):(?<mon>\d\d)/
=> 0
irb(main):007:0> day
NameError: undefined local variable or method `day'
irb(main):008:0> /(?<day>\d\d):(?<mon>\d\d)/ =~ "24:12"
=> 0
irb(main):009:0> day
=> "24"
एनबी # 1: यह सभी चार मामलों में एक ही रेगेक्स और एक ही स्ट्रिंग है।
nb # 2: मैं एमएस विंडोज और Ubuntu Linux में व्यवहार की पुष्टि कर लें।
नोट: हालांकि इस मामले यहाँ नहीं है, तो आप सावधान जब आईआरबी में स्थानीय चर के साथ प्रयोग करना होना चाहिए। आईआरबी में कोड का मूल्यांकन करने के तरीके के कारण, वे एक स्क्रिप्ट की तुलना में आईआरबी में थोड़ा अलग व्यवहार कर सकते हैं। पुष्टि करने के लिए हमेशा स्क्रिप्ट लिखें। –
अच्छा बिंदु, जोर्ग। –