@a1 = qw(1 2 3)
@a2 = qw(1 2 3 4 5)
看上去有a1和a2之間的計算結果作爲a2 [0]的值插入。例如1 + 1 = 2進入a2 [0]爲2,那麼下一個計算就是2 + 2(a2 [0] + a1 [1]),得到a2 [0] = 4,然後4 + 3 (a2 [0] + a1 [2]),得到a2 [0] = 7,然後移至a2中的下一行,並對a1執行相同的功能。兩個陣列之間的Perl迴路
當所有說,做的結果將是從print @a2;
@a1 = qw(1 2 3)
@a2 = qw(1 2 3 4 5)
看上去有a1和a2之間的計算結果作爲a2 [0]的值插入。例如1 + 1 = 2進入a2 [0]爲2,那麼下一個計算就是2 + 2(a2 [0] + a1 [1]),得到a2 [0] = 4,然後4 + 3 (a2 [0] + a1 [2]),得到a2 [0] = 7,然後移至a2中的下一行,並對a1執行相同的功能。兩個陣列之間的Perl迴路
當所有說,做的結果將是從print @a2;
所以基本上你第二陣列中添加的總的值的第一陣列中的每個元件。
my $total = 0;
($total += $_) for @a1;
($_ += $total) for @a2;
完美,如此簡單,我太過於自責了。謝謝,現在已經解決了。 – 2010-11-22 06:47:40
利用相關的列表功能:
#!/usr/bin/env perl
use strict;
use warnings;
use List::Util qw(sum );
use List::MoreUtils qw(apply);
my @a1 = qw(1 2 3 );
my @a2 = qw(1 2 3 4 5);
my $sum = sum(@a1);
@a2 = apply { $_ += $sum } @a2;
參見:
另請參閱Fergal's answer,在這種情況下更簡單。
因此,你在哪裏面臨執行此問題?你想在這裏解決什麼問題? – 2010-11-22 05:55:01
聽起來像作業 – dietbuddha 2010-11-22 05:57:56
我試過'我$ a2 =地圖{我$ a = $ _;地圖{$ _ + $ a} @ a1} @ a2;'作爲嵌套地圖,但不起作用。 foreach(@ 2){$ _ = $ a1 [0] + $ _; $ _ = $ a1 [1]我已經厭倦了foreach循環,但是我無法打破從@ a1 列出每個項目的邊界。 ] + $ _; $ _ = $ a1 [2] + $ _; }' – 2010-11-22 05:59:34