CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): guest (guest) <ns.nownuri.net>
날 짜 (Date): 2002년 12월 10일 화요일 오후 06시 19분 44초
제 목(Title): Re: perl 질문입니다.


regular expression에서 문제가 있는 건지 (variable로 받을 때)
저도 잘 모르지만 print 문에 엉뚱한 게 들어가 있는 건 확실하군요(assign).
에러랑 관계 없겠지만요.

나머지는 문제 없고
while 부분만 급하신 것 같아 작성했는데
저도 바쁜 중에 써내려가서 이 경우에 specific하게 짜고
좋은 코드는 아닙니다만 결과는 말씀하신대로라면
바로 잘 뿌려줄 겁니다. 단, 입력 파일에서 맨 아래 블럭 다음에
끝나는 마지막 줄이 빈 줄이어야 합니다.

$line_tag = 0;
while (<INFILE>) {
        chomp;
        if (/^\\\S+\[\d+\]/) {
                $line_tag++;
                ($word, $num) = ($_ =~ /^\\(\S+)\[(\d+)\]/);
                if ($line_tag == 1) {$max_each_line = $num;}
                push (@inputs, $_);
        } else {
                $line_tag = 0;
                print "wire [$max_each_line:0] $word = {\n";
                $block_last = pop @inputs;
                $block_last =~ s/\s+.*$//g;
                foreach $out_line (@inputs) {
                        print "                      $out_line\n";
                }
                print "                      $block_last };\n\n";
                @inputs = ();
        } 
}

close INFILE;
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.