2010-07-14 11 views
5

क्या पर्ल में एक पंक्ति है जो इस तरह के कुछ जादू करता है।पर्ल सरणी मैनिपुलेशन

Array = [100,200,300,400,500]; 

percent = 50% 

new_Array = [50,100,150,200,250]; 

यही है, मैं एक सरणी देता हूं और प्रतिशत निर्दिष्ट करता हूं। और यह मुझे मूल सरणी मानों के दिए गए प्रतिशत के साथ एक नया सरणी देना चाहिए।

विषम संख्याओं का ख्याल रखना चाहिए और मुझे उस मूल्य की छत या मंजिल देना चाहिए।

मुझे पता है कि इसे मैन्युअल रूप से कैसे करें। बस सोच रहा है कि क्या पर्ल स्टोर में कुछ आश्चर्यजनक है?

धन्यवाद।

उत्तर

3

जब भी आप एक सूची बदलना चाहते हैं, map एक अच्छा शर्त है। यहाँ एक उदाहरण है:

my @list = (100, 200, 300, 400, 500); 
my @new = map { int($_ * 0.5) } @list; 

print "@new"; 

आउटपुट:

50 100 150 200 250 
+0

धन्यवाद :) जो गोलियों की सामग्री करता है। – jerrygo

7

map आपको सूची में प्रत्येक आइटम को बदलने की अनुमति देगा।

my $percent = 50; 
my @original = qw/100 200 300 400 500/; 
my @manipulated = map { $_ * $percent/100 } @original; 
+1

आपको एक स्पष्ट 'int() 'में फेंकने की आवश्यकता हो सकती है नक्शा के रूप में ऐसा लगता है जैसे प्रश्नकर्ता गोल करना चाहता है। – Hudson

+0

धन्यवाद। यह वास्तव में एक अच्छा समाधान है :) – jerrygo

4

आपको लगता है कि जादू करता है पर्ल की एक पंक्ति के लिए कहा के रूप में, यहाँ यह है:

print join " ", map { int($_ * 0.5) } (qw(100 200 300 400 500)); 

इस देता है

50 100 150 200 250 
+0

धन्यवाद। यह भी काम करता है :) – jerrygo

संबंधित मुद्दे