這是一個循環,數組不會被覆蓋,只會增長。數組未被覆蓋
for ($j=0; $j <=$#just_ecps ; $j++){
print "$just_ecps[$j]\n";
for ($x=0; $x<=$#folder_dates ; $x++){
my $archivo_histo = "/home/ha2_d11/data/ibprod/archive/$folder_dates[$x]/$just_ecps[$j]/ghistogram.gz";
next unless (-r $archivo_histo);
open(FILEHANDLE, "gunzip -c $archivo_histo |") or die ("could not open file $archivo_histo");
while (<FILEHANDLE>) {
if ($_ =~ /ave:\s+(\d+\.\d+)\s/){
push (@ecp_average , $1);
sleep 1;
}
print "@ecp_average\n";
}
}
在每種情況下它是最後三個值是有效的,一切之前,它是重複的。我需要擺脫重複並保留最後三個值。
Eislnd1
0.00420743 0.00414601 0.0044511
Eislnd2
0.00420743 0.00414601 0.0044511 0.00303575 0.00309721 0.00302753
Eislnd3
0.00420743 0.00414601 0.0044511 0.00303575 0.00309721 0.00302753 0.0031753 0.00324729 0.00295381
Eislnd4
0.00420743 0.00414601 0.0044511 0.00303575 0.00309721 0.00302753 0.0031753 0.00324729 0.00295381 0.00324191 0.00344244 0.00311481
如果你不想保留所有的值,爲什麼要插入數組? – Mat
爲什麼你的代碼中有'sleep 1' ????? – ErikR
你知道這是一個好點 - 我想使用List :: Util來添加值,然後對它們進行平均 - 使用$#array長度值是劃分總和並獲得平均值的好方法 – capser