पर्ल में फ्लिप-फ्लॉप ऑपरेटर सत्य का मूल्यांकन करता है जब बाएं ऑपरेंड सत्य होता है, और सही ऑपरेशन सत्य होने तक सत्य का मूल्यांकन करता रहता है। बाएं और दाएं ऑपरेंड किसी भी प्रकार की अभिव्यक्ति हो सकती है, लेकिन अक्सर इसका उपयोग रेगेक्स के साथ किया जाता है।
रेगेक्स के साथ, यह दो मार्करों के बीच सभी लाइनों को खोजने के लिए उपयोगी है। यहाँ एक सरल उदाहरण है पता चलता है कि यह कैसे काम करता है:
use Modern::Perl;
while (<DATA>)
{
if (/start/ .. /end/)
{
say "flip flop true: $_";
}
else
{
say "flip flop false: $_";
}
}
__DATA__
foo
bar
start
inside
blah
this is the end
baz
फ्लिप फ्लॉप ऑपरेटर सभी लाइनों के लिए सच हो जाएगा start
से this is the end
जब तक।
ऑपरेटर के दो डॉट संस्करण एक ही पंक्ति पर दोनों मैच के लिए पहले और दूसरे regex की अनुमति देता है।
foo
bar
start blah end
inside
blah
this is the end
baz
आप एक ही पंक्ति से मेल करने के पहले और दूसरे regexes नहीं करना चाहते हैं, तो आप तीन उपयोग कर सकते हैं: तो, यदि आपका डेटा इस तरह देखा, उपरोक्त कार्यक्रम ही सच्चा लाइन start blah end
के लिए होगा डॉट संस्करण: if (/start/ ... /end/)
।
ध्यान दें कि रेंज ऑपरेटर के साथ फ्लिप-फ्लॉप ऑपरेटर को भ्रमित न करने के लिए देखभाल की जानी चाहिए। सूची संदर्भ में, ..
में एक पूरी तरह से अलग कार्य है: यह अनुक्रमिक मानों की एक सूची देता है। जैसे
my @integers = 1 .. 1000; #makes an array of integers from 1 to 1000.
मैं रूबी से परिचित नहीं हूँ, लेकिन Lee Jarvis's link पता चलता है कि यह इसी तरह काम करता है।
स्रोत
2013-01-22 12:29:32
बजाय यदि आप regexps मतलब है फ्लिप फ्लॉप? – choroba
हाँ, यही मुझे वास्तव में पूछना चाहिए :) – samuil