[perl] 일정 갯수, 같은 열끼리 합한 값을 추출할때
1 1 1 2 3 2 1 2 1 1 2
1 1 1 2 3 2 1 2 1 1 2
1 1 1 2 3 2 1 2 1 1 2
1 1 1 2 3 2 1 2 1 1 2
1 1 1 2 3 2 1 2 1 1 2
1 1 1 2 3 2 1 2 1 1 2
위와 같은 파일 샘플에서 같은 열끼리 합산을 하는데,
첫번째줄부터 세번째 줄까지의 합을 출력하고,
그 다음에는 두번째 줄에서 네번째 줄까지 합하여 출력하고
그 다음에는 세번째 줄에서 다섯번째 줄까지 합하여 출력하고자 합니다.
인터넷에서 코드를 참조하여 아래와 같이 만들었는데
반복수행전까지는 실행이 되나 반복수행(1번째 줄에서 3번째, 2번째에서 4번째,...)은 되질 않습니다
혹시 힌트주실분 있으신가요?
use 5.010;
use Getopt::Long;
my ($file, $howmany, $j);
my (@arr, %arr, $row);
my $result = GetOptions (
"l=s" => \$howmany,
);
for ($j=1; $j<5; $j++){ # <---- 이 문장을 넣기 전까지는 잘 작동합니다.
while(<>){
if ($. >= $j and $. < $j + $howmany) {
@arr=split(/\s*$+/, $_);
for (my $i=0; $i<=$#arr; $i++) {
$arr{$i}+=$arr[$i];
}
$row++;
}
}
print (($arr{$_})," ") for (sort {$a <=> $b} keys (%arr));
print "\n";
}
댓글 달기