[PERL] 모두 열로 된 값을 일정 숫자만큼 각 파일로 저장시키는 방법

momo7의 이미지

데이터가 아래의 형식으로 되어있습니다.
각 3줄씩 하나의 파일로 쪼개서 저장시키고자 할때 사용할 수 있는 방법이 있나요?
파일이름은 00x형태로 저장하고 싶습니다.

(전) (후)
1 1
2 2
1 1
2 ------(파일1)
1 2
2 1
2 2
3 ------(파일2)
1 2
2 3
3 1
2 ------(파일3)
2
3
2
------(파일4)

익명 사용자의 이미지

split.pl

#!/usr/bin/env perl
use strict;
use warnings;
 
my $i = 1;
my $fh;
 
while (my $line = <>) {
    if (!(($.-1)%3)) {
        close $fh unless $i == 1;
        open $fh, '>', sprintf('%03d', $i);
        $i++;
    }
    print {$fh} $line;
}
 
close $fh;

데이터 파일이 data.txt 라면
$ perl split.pl data.txt
처럼 명령내리면 됨