Regular Expression 을 사용한 Substitution

Perl 의 substitution 을 사용하여 텍스트 파일의 일부분을 HTML tag 로 변환해 주는 프로그램을 만들었다. 원래의 텍스트 파일에는 xxx(yyy) 형태의 부분이 많이 들어 있어서 색깔을 넣는데 좋은 예문이 되었다. 아래 소스를 참고하기 바란다.

용문객잔 ( 변환된 결과 )

제 1 화 중원(中原)의 혈풍(血風)

제 2 화 대혈겁(大血劫)의 서곡(序曲)

제 3 화 新 龍門客殘 (POG Version)

Source Code
#!/usr/bin/perl

$filename = '/home/scgyong/public_html/misc/yongmun/yongmun.txt';

main();

# end of execution

sub main {

    setReplace();

    print <<EOM;
Content-type: text/html

<HTML>
<BODY BACKGROUND="yh.gif">
EOM

    open(FILE, $filename) or die $!;
    while (<FILE>) {
        my($qopen, $qclose);

        $qopen = $rep11 if (m/^\s*"/);
        $qclose = $rep12 if (m/"\s*$/);

        s/([^-\s"]+?)\(([^-\s"]+?)\)/$rep21\1$rep22\2$rep23/g;
        s/^\s*\n/<P>\n/;
        s/^-(.*)\n/\1<BR>\n/;
        s/\cM//;
        print $qopen; print; print $qclose;
    }
    close(FILE);

    print <<EOM;
</BODY>
</HTML>

EOM

}

sub setReplace {

    $rep11 = <<EOM;
 <UL>
  <FONT COLOR="#007777">
EOM

    $rep12 = <<EOM;
  </FONT>
 </UL>
EOM

    $rep21 = qq|<FONT COLOR="#0000FF">|;
    $rep22 = qq|</FONT>(<FONT COLOR="#007700">|;
    $rep23 = qq|</FONT>)|;

}

# end of script