आप चलाकर प्रलेखन को देखें, तो:
perldoc -f split
आप तर्क के तीन रूपों देखेंगे कि split
ले जा सकते हैं:
split /PATTERN/,EXPR,LIMIT
split /PATTERN/,EXPR
split /PATTERN/
इसका मतलब यह है कि जब भी आप split
स्ट्रिंग के रूप पारित पहला तर्क, perl
इसे रेगेक्स में जोड़ रहा है।
अगर हम चेतावनी जब re.pl
में कुछ इस तरह करने का प्रयास कर हम मिल को देखो:
$ my $string_with_backslashes = "Hello\\there\\friend";
Hello\there\friend
$ my @arry = split('\\', $string_with_backslashes);
Compile error: Trailing \ in regex m/\/ at (eval 287) line 6.
हम देखते हैं कि पहले '\\'
बैकस्लैश एक वास्तविक बैकस्लैश है, जो करने के लिए मूल्यांकन करता है, जिसके बाद बच अंतर्वेशित है एक बैकस्लैश
split
तो बैकस्लैश हम दे दिया डालता है, और एक regex के लिए यह coerces के रूप में अगर हम लिखा था:
$ my @arry = split(/\/, $string_with_backslashes);
जो केवल एक ही बैकस्लैश जो केवल बचने के रूप में व्याख्या की है क्योंकि वहाँ काम नहीं करता है इसके बाद आगे की स्लैश (/
को समाप्त किए बिना) यह दिखाने के लिए कि रेगेक्स समाप्त हो गया है।
पथ में आपका भाग्य गलत है। एक डबल उद्धृत स्ट्रिंग में, \ \ फ़ोल्डर 'को एक अनुक्रम अनुक्रम' \ F' के रूप में व्याख्या किया जाता है। – TLP
'विभाजन' के लिए विभाजक पैटर्न के चारों ओर उद्धरणों का उपयोग करना बुरा अभ्यास है क्योंकि यह अर्थशास्त्र को सही ढंग से व्यक्त नहीं करता है और डबल संकलन का कारण बनता है। हमेशा स्लैश का उपयोग करें, जब तक कि आप डिफ़ॉल्ट व्यवहार को चलाने के लिए एकल-स्थान स्ट्रिंग को पास नहीं करना चाहते हैं, जब '' सही विकल्प है। – Borodin
@ टीएलपी हाँ मुझे पता है, मैं आमतौर पर पथ के लिए केवल एक उद्धरण डालता हूं। धन्यवाद –