तो, मुझे यह कभी नहीं पता था और मैं इसके बारे में कुछ स्पष्टीकरण प्राप्त करना चाहता हूं। मुझे पता है कि क्या आप
foreach (@list){
यदि आप उस लूप में $ _ बदलते हैं तो यह वास्तविक डेटा को प्रभावित करेगा। लेकिन, मुझे नहीं पता था कि अगर आपने
foreach my $var1 (@list){
यदि आपने लूप में $ var1 बदल दिया है तो यह वास्तविक डेटा बदल देगा। : -/तो, क्या @list पर लूप करने का कोई तरीका है, लेकिन चर को केवल पढ़ने-योग्य प्रतिलिपि रखें, या एक प्रतिलिपि जो बदली गई है, वह @list में मान नहीं बदलेगी?
सावधान रहें, $ var1 एक संदर्भ है, लेकिन एक अन्य नाम नहीं है। अंतर देखें: मेरी $ var2 = \ $ सूची [0]; प्रिंट करें "$ var2 \ n"; स्केलर (0x8171880) – wazoox
@wazoox प्रदर्शित करता है: उसका मतलब था कि $ var1 में कोई संदर्भ शामिल है, उदा। यदि @list में HASH refs का एक गुच्छा शामिल है। यहां तक कि यदि आप एलियासिंग तोड़ते हैं, तो भी आपके पास एक ही चीज़ के संदर्भ की एक और प्रति है। –