मेरे पास तारों की एक सरणी है: @array
मैं दो इंडेक्स के बीच सरणी तत्वों को संयोजित करने के लिए पर्ल का उपयोग कैसे कर सकता हूं?
मैं सरणी अनुक्रमणिका $i
से $j
के साथ शुरू होने वाले सभी तारों को जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूं?
मेरे पास तारों की एक सरणी है: @array
मैं दो इंडेक्स के बीच सरणी तत्वों को संयोजित करने के लिए पर्ल का उपयोग कैसे कर सकता हूं?
मैं सरणी अनुक्रमणिका $i
से $j
के साथ शुरू होने वाले सभी तारों को जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूं?
$newstring = join('', @array[$i..$j])
my $foo = join '', @array[$i..$j];
पहले हम मूल्यों है कि हम चाहते हैं के साथ एक सरणी टुकड़ा उत्पन्न करते हैं, तो हम उन्हें खाली चरित्र 'पर शामिल हो।
इस प्रयास करें ....
use warnings ;
use strict ;
use Data::Dumper ;
my $string ;
map { $string .= $_; } @arr[$i..$j] ;
print $string ;
आपको शून्य संदर्भ में 'मानचित्र' का उपयोग नहीं करना चाहिए; एक 'लूप' लूप भी काम करेगा। लेकिन जब आप केवल 'जॉइन' का उपयोग कर सकते हैं तो किसी भी प्रकार की लूप अनावश्यक होती है। – friedo
शून्य 'नक्शा' बुराई है? मैं अधिकांश स्थानों के लिए 'पोस्ट' का उपयोग करता हूं, एक शून्य 'मानचित्र' का उपयोग किया जा सकता है। यहां मैं 'जॉइन' का उपयोग करूंगा। लेकिन पर्ल 5.8.1 और ऊपर नक्शा के रिटर्न वैल्यू को ऑप्टिमाइज़ करते हैं जब इसे शून्य संदर्भ में कहा जाता है। शून्य संदर्भ में मानचित्र की अधिक चर्चा के लिए देखें: http://www.perlmonks.org/index.pl?node_id=296742 – daotoad
बस उद्धरण में एक पर्ल सरणी enclosing यह श्रेणीबद्ध करने के लिए पर्याप्त है, यदि आप संयोजन चरित्र के रूप में रिक्त स्थान के साथ खुश हैं:
@array = qw(a b c d e f g);
$concatenated = "@array[2 .. 5]";
print $concatenated;
## prints "c d e f"
या बेशक
$" = '-';
@array = qw(a b c d e f g);
$concatenated = "@array[2 .. 5]";
print $concatenated;
यदि आप "सीडीएफ" पसंद करेंगे।
आप सरणी तत्वों के बीच वर्णों को खत्म करने के लिए '$ undef' भी कर सकते हैं; यह एक अच्छा अभ्यास है ग्लोबल '$" वैरिएबल में अपने ब्लॉक में परिवर्तनों को स्थानीयकृत करें। – toolic
धन्यवाद। यदि $ j स्ट्रिंग का अंत है, तो मैं $ j के लिए स्केलर (@array) -1 का उपयोग कर रहा हूं। ऐसा करने का कोई और तरीका है। –
@iamrohitbanga हां: '$ # सरणी 'स्केलर @ सरणी - 1' – mob
कहने का एक छोटा तरीका है क्षमा करें, मैं" $ j स्ट्रिंग का अंत "भाग का पालन नहीं करता हूं। लेकिन स्केलर (@array) -1 $ # सरणी है। – xiechao