• ベストアンサー

文末のスペース(改行)

●1回目 ログファイルからランダムに1行分を表示する。 その下にテキストボックスを表示し、入力を促す。 ●2回目 さきほど入力されたものと表示されたものがあっているかどうかを確認し、分岐 というような流れのcgiを作成しました。 ログファイルから持ってきたものが、改行が入っているため、半角スペースが入っています。 なので、 chomp $FORM{'KEYWORD1'}; として、改行を削除しました。 ローカルの時点ではうまくいっていたのですが、アップロードすると、改行が消えていません。 改行を削除するのはchompでは駄目なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

文末だけでなく変数中(ここでは連想配列ですが)の改行全て削除するなら、 $FORM{'KEYWORD1'} =~ tr/\x0D\x0A//d; 文末だけなら、 $FORM{'KEYWORD1'} =~ s/\x0D?\x0A?$//;

w-inty
質問者

お礼

無事できました。 ありがとうございました。

その他の回答 (2)

  • lucky365
  • ベストアンサー率44% (32/72)
回答No.2

chompは実行環境での改行コードで判断します。 ローカルとサーバーではコードが異なると思いますので、転送モードを変えてアップロードみてはいかがでしょうか。

w-inty
質問者

お礼

回答ありがとうございます。 転送モードとは、バイナリモードとアスキーモードということでしょうか? 変えてみたところ、cgiが実行されなくなってしまいました。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

正規表現を使うのはどうですか? $FORM{'KEYWORD1'} =~ m/^(.*+)(\r|\n)+$)/; $FORM{'KEYWORD1'} = $1; なんて感じで行けるんじゃ無いかな。って思います。 試していませんが(^_^;)

w-inty
質問者

お礼

回答ありがとうございます。 chompで駄目でしたら試してみます。 ありがとうございます。

関連するQ&A