- ベストアンサー
Perl CGIで改行を含む初期文字列をtextareaに表示する方法
- Perl CGIでtextarea内に改行を表示する際にうまくいかない場合の対処方法を教えてください。
- 質問者は、Perl CGIでtextarea内に初期文字列を表示し、その中に改行を含めたいと考えています。
- しかし、現在のコードでは改行が正しく表示されず、質問者は解決策を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これ、結果どうなったか、ブラウザで、実際の表示とソース、両方確認しましたか? 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>" が常套手段でしょう。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
ダブルクォートの中で「ダブルクォートをエスケープしなきゃならない」のが面倒というむきには qq(~) などの方法もあります.
お礼
返信ありがとうございます。 qqも一時き使ってみたことがあるのですが、プログラムがわかりにくくなってしまったので、やめました。
お礼
返信ありがとうございます。 参考にさせて頂きます。