• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perl cgiにて作成したtextareaで改行)

Perl CGIで改行を含む初期文字列をtextareaに表示する方法

このQ&Aのポイント
  • Perl CGIでtextarea内に改行を表示する際にうまくいかない場合の対処方法を教えてください。
  • 質問者は、Perl CGIでtextarea内に初期文字列を表示し、その中に改行を含めたいと考えています。
  • しかし、現在のコードでは改行が正しく表示されず、質問者は解決策を求めています。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

これ、結果どうなったか、ブラウザで、実際の表示とソース、両方確認しましたか? textareaに"$testbr" と表示されたのではないですか? #ついでに、ソースを見れば「value=$initText」となっているはずです。 ' (シングルクオート)と "(ダブルクオート)での挙動の違いを理解してください。 Perlの基本です。 '<textarea name="freeans" rows="5" cols="30" value=$initText wrap="hard">あいうえお"$testbr"かきくけこ </textarea>' では、これ全体がシングルクオートで括られた1つの文字列です。 シングルクオートの中では$での変数の展開等は行いません。 よって"$testbr"は、そのまま「"$testbr"」という文字列になります。 \による展開も\自身と'にしか効かないので '<textarea name="freeans" rows="5" cols="30" value=$initText wrap="hard">あいうえお\nかきくけこ </textarea>' も改行にはなりません。 一旦閉じて文字列の連結を使うとか '<textarea name="freeans" rows="5" cols="30" value=' . $initText . ' wrap="hard">あいうえお' . $testbr . 'かきくけこ </textarea>' ダブルクォートを使う(文字列中のダブルクォートは\でエスケープ)とか "textarea name=\"freeans\" rows=\"5\" cols=\"30\" value=${initText} wrap="hard">あいうえお${testbr}かきくけこ </textarea>" が常套手段でしょう。

kmwrod
質問者

お礼

返信ありがとうございます。 参考にさせて頂きます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ダブルクォートの中で「ダブルクォートをエスケープしなきゃならない」のが面倒というむきには qq(~) などの方法もあります.

kmwrod
質問者

お礼

返信ありがとうございます。 qqも一時き使ってみたことがあるのですが、プログラムがわかりにくくなってしまったので、やめました。

関連するQ&A