- 締切済み
CGI出力での改行位置について
表形式のデータをエクセルからテキストファイルでFTPし、そのデータをCGIで表示するものを作成中です。 FTPまで8割くらいできたところで、CGI(perl)に取り掛かり、まず、データの読み込みが出来ていることを確認するために、読んだデータをそのまま打ち出すルーチンをつくり、小さなデータで実行してみたところ以下の事象が起こりました。 ---- perlのコード(部分) ---- foreach $line (@lines) { @a = split(/,\t/, $line); foreach $a (@a) { print "<$a> "; } print "<br>\n"; } ------------------ @linesはデータの項目群(1行分)のイメージです。項目の区切り文字として「,\t」を使用しています。 ---結果のブラウザ表示の例(一部)--- <[Format]> <#FFFFFF> <#555555> <#F8F8FA> <true > ---------------------------- 表示された最後の項目(上例の場合true)の後にスペースが開いてしまいます。 いろいろ調べたところ、データには異常ない(スペースはない)ですし、試行錯誤して最後に気がついたのがブラウザ表示のソースを見ること ---ブラウザのソース--- <[Format]> <#FFFFFF> <#555555> <#F8F8FA> <true > <br> --------------------- となっており、ソースの改行がスペースの原因ということまではわかりました。 また、上記例は5項目ですが、行により項目数が違いますが、全行とも必ず最後の項目の右括弧(>)の前で改行されてしまっています。 CGI側からの出力は<br>の後の改行だけだと思っているのですが、なぜ最終項目だけ改行がはいるのでしょうか? しかも>の前に・・・ データはちゃんと読めているようなので、作業をすすめる上では問題ないのですが、どうも気になりますのでどなたかヒントをお願いします。(なお、サーバはUNIXのはずです。)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
お礼
気が付きませんでした。おはずかしい。 多分その通りですね。お手数かけました。