| [ 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; |