कैसे पारित करने के लिए सरणी पर्ल में

कार्य । के कोड में पर्ल प्रोग्राम एक सरणी है @arr (पहले तीन अक्षरों से शब्द "सरणी"). इस सरणी में कुछ मूल्यों. आप की जरूरत करने के लिए जाने के माध्यम से सभी सरणी तत्वों और कुछ कार्रवाई करने के लिए प्रत्येक आइटम के साथ.

के माध्यम से जाने सरणी का उपयोग कर foreach

सिफारिश की तरह करने के लिए इस समस्या को हल करने के लिए है का उपयोग करें foreach. यहाँ एक नमूना कार्यक्रम:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

foreach my $el (@arr) {
    warn $el;
}

यह सब बहुत आसान है. वहाँ एक सरणी है. अगले हम एक चर बनाएँ $el (एक संक्षिप्त नाम के शब्द element). चक्र foreach स्थानों में है कि चर का पहला तत्व सरणी (हमारे उदाहरण में यह संख्या 1 है). कार्यान्वित पाश शरीर warn $el; — यह लाता है मूल्य स्क्रीन पर. चक्र foreach में डालता चर $el अगले मूल्य सरणी से फिर से कार्यान्वित पाश शरीर. यह दोहराया जाता है जब तक पाश शरीर को मार डाला नहीं सभी के लिए सरणी तत्वों.

जाने सरणी के माध्यम से एक पाश का उपयोग कर for

यहाँ एक नमूना कार्यक्रम चलने के लिए कैसे पर एक पर्ल सरणी का उपयोग कर एक पाश के लिए इसी तरह के पाश में C भाषा में:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i < @arr; $i++) {
    warn $arr[$i];
}

क्या हो रहा है. वहाँ है एक सरणी @arr. तो हम एक नया बनाया चर $i और आवंटित यह मान 0 (0 सूचकांक है पहला तत्व में एक पर्ल सरणी). तो कार्यान्वित पाश शरीर warn $arr[$i];. उसके बाद, चर $iके साथ ऑपरेटर ++ की वृद्धि हुई है । यह तो जाँच की स्थिति $i < @arr. अगर हालत सच लौटा, तो सब कुछ दोहराता है ।

इस समाधान के लिए कुछ और अधिक जटिल की तुलना में समाधान का उपयोग कर foreach. आप की जरूरत करने के लिए ध्यान से काम के साथ सीमा के मूल्यों. अगर यह गलत है एक चेक लिखने के लिए, आप कर सकते हैं या तो छोड़ के पिछले मूल्य या का उपयोग करने के लिए एक nonexistent तत्व से परे के अंतिम तत्व सरणी (इस इलाज के लिए वापस आ जाएगी undef).

यहाँ एक उदाहरण है प्रोग्राम है कि काम करता है एक ही रास्ता है, लेकिन उपयोग एक अलग हालत for:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i <= $#arr; $i++) {
    warn $arr[$i];
}

for सरणी यह समझ में आता है का उपयोग करने के लिए यदि आप कर रहे हैं पाश में शरीर चाहिए न केवल के मूल्य तत्व है, और इसकी संख्या. लेकिन इस मामले में आप उपयोग कर सकते हैं foreach चक्र, मैन्युअल रूप से उजागर चर सूचकांक के साथ:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);
my $i = 0;

foreach my $el (@arr) {
    warn "index: $i value: $el";
    $i++;
}

इस विकल्प आसान है के द्वारा माना जाता है व्यक्ति और यह है कम करने के लिए अतिसंवेदनशील बहामा के साथ मूल्य सीमा. लेकिन वहाँ एक और अधिक सुविधाजनक तरीका के लिए एक ही बात कहते हैं के साथ each.

के माध्यम से जाने सरणी का उपयोग कर while और each

कीवर्ड each नहीं किया जाता है कि बहुत अक्सर, लेकिन लगभग हमेशा जब यह प्रयोग किया जाता है यह करने के लिए इस्तेमाल किया के साथ काम Hesham. छोटे से जाना जाता है, लेकिन each इस्तेमाल किया जा सकता करने के लिए के माध्यम से जाने के साथ, सरणी सूचकांक के तत्व और तत्व ही है । यहाँ है पिछला कोड का उपयोग कर लिखा each:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

while (my ($i, $el) = each @arr) {
    warn "index: $i value: $el";
}

each के लिए लागू किया जा सकता सरणियों से पर्ल 5.12. यदि आप इस कोड को चलाने पर अधिक पहले के संस्करणों के पर्ल, यह त्रुटि होगा:

Type of arg 1 to each must be hash (not private array) at script.pl line 5, near "@arr) "
Execution of script.pl aborted due to compilation errors.

संबंधित विषयों

अन्य लेख