संभव डुप्लिकेट: How do pass one array and one string as arguments to a function?पास सरणी और एक पर्ल सबरूटीन को अदिश
मैं एक समारोह, या सबरूटीन, जिसे एक श्रृंखला के रूप में और दूसरा पैरामीटर के रूप में पहले पैरामीटर में लेता है एक स्केलर उदाहरण के लिए,
sub calc {
my @array = $_[0];
my $scalar = $_[1];
print @array, $scalar;
}
समस्या यह है कि समारोह सरणी सरणी में पारित की पहली मूल्य के बराबर बना रहा है, और अदिश सरणी में पारित की दूसरी मूल्य हो रहा है। जब मैं चाहता हूँ पहले सरणी पूरी सरणी होने के लिए, मुझे सरणी की गहरी प्रतिलिपि बनाने की आवश्यकता नहीं है। उदाहरण के लिए,
my @array = ('51', 'M');
my $scalar = 21;
और
calc(@array, $scalar)
51 M
प्रिंट जब मैं 51 M 21
चाहते है।
ध्यान दें कि मेरे उत्तर का दूसरा भाग सरणी की एक प्रति बना देगा। आप इसे संदर्भ के रूप में भी छोड़ सकते हैं, और इसे अपने फ़ंक्शन – happydave
पर उचित रूप से एक्सेस कर सकते हैं हालांकि यह वास्तव में काम नहीं करता है, मैंने कोशिश की। क्या आपने इसका परीक्षण किया है? –
क्षमा करें, मुझे लगता है कि @ @ 0 से पहले लागू किया गया है। मैंने $ _ [0] के आसपास ब्रेसिज़ के साथ एक निश्चित संस्करण रखा है। – happydave