अब, हम सभी जानते हैं कि अधिकांश भाषाओं में "स्व-संशोधित" कोड के बहुत सरल तरीके हैं। हालाँकि, क्या होगा अगर आप वास्तव में कोड को संशोधित करने और डिस्क पर ... के कुछ हिस्सों को संपादित करें?
आपका लक्ष्य उस कोड को बनाना है जो एक संख्या को प्रिंट करता है, फिर संख्या को बदलने के लिए अपनी फाइल को संपादित करता है ताकि अगले नंबर पर फिबोनाची अनुक्रम में इस तरह से हो:
$ ./program
1
$ ./program
1
$ ./program
2
$ ./program
3
$ ./program
5
[etc...]
नियम
- आप कोड के बाहर "संख्या" को स्टोर नहीं कर सकते हैं। कोई टिप्पणी नहीं, कोई स्क्रिप्ट को बाहर निकलने के लिए नहीं कह रहा है, कोई ईओएफ इत्यादि नहीं।
- यदि आपका कोड किसी फ़ाइल नाम के साथ काम करता है, तो अपनी बाइट राशि से 2 घटाएं और
$BYTESNOW ($ORIGINALBYTES - 2)
अपने शीर्षक में लिखें । (फ़ाइलनाम को किसी अल्फ़ान्यूमेरिक फ़ाइल पथ की सीमा के भीतर माना जाता है।) - आपका कोड किसी भी बाहरी पाइपिंग सहायता के बिना, फ़ाइल पर आउटपुट को स्वयं लिखना चाहिए।
- आपका कोड एक या शून्य से शुरू हो सकता है। इससे कोई फर्क नहीं पड़ता।
perl6 program
) के दुभाषिया को आमंत्रित करके कार्यक्रम को कॉल करने की अनुमति है , या क्या उसे शबंग रेखा को शामिल करना है ताकि इसे कहा जा सके ./program
?
program
, और क्या हम यह मान सकते हैं कि यह वर्तमान वर्किंग डायरेक्टरी में स्थित है?
"a"
इसके बजाय बस करना आसान है arg[0]
। यह इसके लायक नहीं लगता है।