Perl数组操作

jer*_*ygo 5 arrays perl

perl中是否有一行可以像这样做一些魔法.

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

percent = 50%

new_Array = [50,100,150,200,250];
Run Code Online (Sandbox Code Playgroud)

也就是说,我给出一个数组并指定一个百分比.它应该给我一个新的数组,其中包含原始数组值的给定百分比.

应该照顾奇数,给我这个价值的上限或下限.

我知道如何手动完成.只是想知道perl是否有惊人的商店?

谢谢.

Que*_*tin 7

map将允许您转换列表中的每个项目.

my $percent = 50;
my @original = qw/100 200 300 400 500/;
my @manipulated = map { $_ * $percent / 100 } @original;
Run Code Online (Sandbox Code Playgroud)


fri*_*edo 3

每当您想要转换列表时,map这是一个不错的选择。这是一个例子:

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

print "@new";
Run Code Online (Sandbox Code Playgroud)

输出:

50 100 150 200 250
Run Code Online (Sandbox Code Playgroud)