2010-04-27 14 views
9

में शामिल होने का उपयोग करते समय उपसर्ग को जोड़ना मेरे पास स्ट्रिंग्स की एक सरणी है जिसे मैं शामिल फ़ंक्शन का उपयोग करना चाहता हूं। हालांकि, मैं एक ही स्ट्रिंग के साथ प्रत्येक स्ट्रिंग को उपसर्ग करना चाहता हूं। क्या मैं इसे एक पंक्ति में कर सकता हूं क्योंकि पहले सरणी के माध्यम से पुनरावृत्त करने और जुड़ने का उपयोग करने से पहले प्रत्येक मान को बदलना?पर्ल

दरअसल यह एक हल्का थोड़ा चालक है। उपसर्ग शामिल विभाजक का हिस्सा नहीं है। मतलब अगर आपने (1,2,3,4,5) की सरणी पर "num-" जैसे उपसर्ग का उपयोग किया है, तो आप यह परिणाम प्राप्त करना चाहते हैं: num-1, num-2, num-3, num-4 , संख्या-5

उत्तर

20

इस कोड:

my @tmp = qw(1 2 3 4 5); 
my $prefix = 'num-'; 
print join "\n", map { $prefix . $_ } @tmp; 

देता है:

num-1 
num-2 
num-3 
num-4 
num-5 
+1

मैं एक उत्तर पोस्ट करने जा रहा था, लेकिन आपका सबसे अच्छा है, इसलिए इसके बजाय मैंने आपके स्वरूपण को ठीक किया। :) – Ether

+1

मानचित्र के कम भ्रमित ब्लॉक फॉर्म का उपयोग करने के लिए इसे बदल दिया, आशा है कि आपको कोई फर्क नहीं पड़ता :) – rjh

+0

एक-लाइनर के लिए खेद है। संपादन के लिए धन्यवाद। – racerror

3

बस का उपसर्ग हिस्सा बनाने में शामिल होने:

my @array = qw(a b c d); 
my $sep = ","; 
my $prefix = "PREFIX-"; 
my $str = $prefix . join("$sep$prefix", @array); 

तुम भी मानचित्र का उपयोग लगाकर ऐसा करने के लिए कर सकता है यदि आप पसंद:

my $str = join($sep, map "$prefix$_", @array); 
+0

आप एक सरणी में एक स्ट्रिंग क्यों संग्रहीत कर रहे हैं? – cjm

+1

सीजेएम: कोड में बग क्यों हैं? वैसे भी, तय :-) – runrig