पर्ल रेगेक्स रनटाइम 'फिक्स्ड' या 'एंकर' सबस्ट्रिंग्स के बजाय 'फिक्स्ड' सबस्ट्रिंग्स के बजाय काम करते समय बहुत तेज़ चलता है। एक सबस्ट्रिंग तय की जाती है जब आप इसे स्रोत स्ट्रिंग में किसी निश्चित स्थान पर लॉक कर सकते हैं। '^' और '$' दोनों एंकरिंग प्रदान करते हैं। हालांकि, जब आप alternation '|' का उपयोग करते हैं, तो कंपाइलर विकल्पों को निश्चित रूप से पहचान नहीं करता है, इसलिए यह संपूर्ण स्ट्रिंग को स्कैन करने के लिए कम अनुकूलित कोड का उपयोग करता है। और प्रक्रिया के अंत में, दो बार निश्चित तारों की तलाश करना एक बार एक फ़्लोटिंग स्ट्रिंग की तलाश में बहुत तेज़ है। संबंधित नोट पर, पर्ल के regcomp.c को पढ़ने से आप अंधे हो जाएंगे।
अद्यतन: यहां कुछ अतिरिक्त विवरण दिए गए हैं। यदि आप इसे डीबगिंग समर्थन के साथ संकलित करते हैं तो आप '-Dr' ध्वज के साथ पर्ल चला सकते हैं और यह रेगेक्स संकलन डेटा को डंप कर देगा। शब्द पहले डंप में 'लंगर'
~# debugperl -Dr -e 's/^\s+//g'
Compiling REx `^\s+'
size 4 Got 36 bytes for offset annotations.
first at 2
synthetic stclass "ANYOF[\11\12\14\15 {unicode_all}]".
1: BOL(2)
2: PLUS(4)
3: SPACE(0)
4: END(0)
stclass "ANYOF[\11\12\14\15 {unicode_all}]" anchored(BOL) minlen 1
# debugperl -Dr -e 's/^\s+|\s+$//g'
Compiling REx `^\s+|\s+$'
size 9 Got 76 bytes for offset annotations.
1: BRANCH(5)
2: BOL(3)
3: PLUS(9)
4: SPACE(0)
5: BRANCH(9)
6: PLUS(8)
7: SPACE(0)
8: EOL(9)
9: END(0)
minlen 1
नोट: यहाँ आप क्या मिलता है।
भी देखें http://perldoc.perl.org/perlfaq4.html#How-do-I-strip-blank-space-from-the-beginning/end-of-a-string%3f –