@FileInに読み込んだデータを順に取り出して、出力するソースコードを書いてみます。
まずは、読み込んだ行数分、ループさせます。
for($msgcnt = 0 ; $msgcnt < @FileIn; $msgcnt++ ){ &STDOUT_MSG( $msgcnt ); }
STDOUT_MSGというのは、メッセージを標準出力に書き出すためのユーザ定義関数で、以下のようにしてみました。
sub STDOUT_MSG { ( $Msg_Type, $Msg_Char, $Msg_Icon, $Msg_Time, $Msg_Text) = split( /<>/, @FileIn[@_[0]] ); if( $Msg_Type < 80 ){ print "<div class=\"cell\"><div class=\"char\">\n"; print "<img class=\"char\" src=\"$Msg_Icon\" width=\"50\" height=\"50\" alt=\"$Msg_Char\"></div>\n"; print "<div class=\"name\">$Msg_Char [$Msg_Time]</div>\n"; print "<div class=\"msg$Msg_Type\">$Msg_Text</div><br class=\"clear\"></div>\n"; print "<br>\n"; }else{ print "<div class=\"cell\">\n"; print "<div class=\"name\">システムメッセージ [$Msg_Time]</div>\n"; print "<div class=\"msg$Msg_Type\">$Msg_Text</div><br class=\"clear\"></div>\n"; print "<br>\n"; } }
splitで「<>」を区切り文字にして、各項目を切り出しています。Msg_Typeが80の時はシステムメッセージなので、if文で別処理にしてあります。
まあ、これで一応上手くいっています。