┌─────────┐
│perl超入門(4):付録│
│    2002/11/17│
└─────────┘

perlスクリプトのサンプルソースです。
このHTMLファイル自身がサンプルソースから変換されたものです。
サブルーチンを使っていますが、講座としては次々回に扱う予定です...(^_^;

[▲前ページへ戻る▲]


#============================================================
# TXT→HTMLコンバータ HTMLCONV perl (htmlconv.pl)
# by Monpe
# jperl等(2byte文字対応環境)での実行を仮定したスクリプトです
#------------------------------------------------------------
# [機能]
# ・テキストファイルを「そのままの体裁」でHTMLに変換します
#
# ・連続した半角スペースは全角スペースへ変換します。
# ・行先頭の単独半角スペースは、背景色と同じダミーキャラク
#  タを埋めます。
# ・ダミーキャラクタの色は「$BGCOLOR」で指定します
#
# [使い方]
#   jperl htmlconv.pl 対象TXTファイル名
# ・変換結果は標準出力に表示されます。
# ・ファイル化したい場合はリダイレクトを使用して下さい。
#   jperl htmlconv.pl 対象TXTファイル > 変換ファイル名
#
# [著作権と免責]
# ・本スクリプトの著作権はMonpeが保有します。
# ・本スクリプトを使用して生じたいかなる結果に対しても、
#  Monpeは責を負いません。
#------------------------------------------------------------
# Version | Date    | Comments
#---------+------------+-------------------------------------
# 1.00  | 2002-11-16 | 初版
#============================================================
$ver_val = '1.00';   # Version番号
$BGCOLOR = '#FFFFFF'; # 隠れキャラ用背景色

#--------------------------------
# メインルーチン
#--------------------------------
&Sub_ArgCount;     # 引数チェック
&Sub_HeaderPrint;   # ヘッダ系タグ出力
while(<>){
  &Sub_MainConvert; # 本文変換ルーチン
}
&Sub_FooterPrint;   # フッタ系タグ出力
exit;         # 終了


#--------------------------------
# コマンド引数チェック
#--------------------------------
sub Sub_ArgCount {
  if (($#ARGV + 1) < 1) {
    print "error!! : ファイル名を入れて下さい\n";
    exit;
  }
}


#--------------------------------
# ヘッダ系タグ出力
#--------------------------------
sub Sub_HeaderPrint {
  print '<HTML>',"\n";
  print '<HEAD>',"\n";
  
  print '<TITLE>';
  &Sub_Title;   # タイトル文字列作成
  print '</TITLE>',"\n";
  
  print '<HTMLCONV on Perl Ver.',$ver_val,' by Monpe>',"\n";
  print '</HEAD>',"\n";
  print '<BODY><TT><NOBR>',"\n";
}

#--------------------------------
# ファイル名から.txt拡張子を削除
#--------------------------------
sub Sub_Title {
  local($str_title);
  
  $str_title = $ARGV[0];
  $str_title =~ s/\.txt//i;
  
  print $str_title;
}

#--------------------------------
# 本文変換ルーチン
#--------------------------------
sub Sub_MainConvert {
  $_ =~ s/ / /g;   #2個の半角スペース → 1個の全角スペース
  $_ =~ s/&/&amp;/g;  #& → &amp;
  $_ =~ s/</&lt;/g;  #< → &lt;
  $_ =~ s/>/&gt;/g;  #> → &gt;
  $_ =~ s/\"/&quot;/g; #" → &quot;
  $_ =~ s/^ /<FONT color=\"$BGCOLOR\">S<\/FONT>/;
             #先頭半角スペース → 背景色キャラ埋め
             #背景色は「$BGCOLOR」で指定
  $_ =~ s/\n/<BR>\n/; #\n → <BR>\n
  print;        #変換後出力
}

#--------------------------------
# フッタ系タグ出力
#--------------------------------
sub Sub_FooterPrint {
  print '</NOBR></TT></BODY>',"\n";
  print '</HTML>',"\n";
}


[▲前ページへ戻る▲]