कुछ मिनट पहले तक, मुझे विश्वास था कि Perl का $
किसी भी प्रकार की लाइन से मेल खाता है। दुर्भाग्यवश, मेरी धारणा गलत साबित हुई।
निम्न स्क्रिप्ट अंत शब्द केवल $string3
के लिए हटा देता है।
use warnings;
use strict;
my $string1 = " match to the end" . chr(13);
my $string2 = " match to the end" . chr(13) . chr(10);
my $string3 = " match to the end" . chr(10);
$string1 =~ s/ end$//;
$string2 =~ s/ end$//;
$string3 =~ s/ end$//;
print "$string1\n";
print "$string2\n";
print "$string3\n";
लेकिन मैं लगभग 75% लगता है कि मैं ऐसे मामलों में जहां $
का मिलान नहीं हुआ कम से कम chr(13).chr(10)
देखा है हूँ।
तो, $
परमाणु मैच क्या वास्तव में (और किस परिस्थितियों में) करता है? केवल
हो सकता है कि आप 'crlf' मोड में एक फ़ाइल पढ़ रहे हों, इसलिए फ़ाइल में' chr (13) .chr (10) 'है, लेकिन जिस स्ट्रिंग के साथ आप मिलान कर रहे थे केवल' chr (10) 'था। – cjm