• ベストアンサー

書いた文章を改行など含めて文字列として変数に代入するには?

あいうえお かきくけこ さしすせそ を変数に文字列として代入したいのですが、 my $string = "あいうえお\nかきくけこ\nさしすせそ\n"; などと改行文字を自分で入れたりといったことをせず、 変数に文字列として代入する方法を教えてください。 print <<END; あいうえお かきくけこ さしすせそ END という方法があるのは分かったのですが。。。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

my $string = <<END; あいうえお かきくけこ さしすせそ END こんな感じで代入可能です。 念のため、補足します。 <<END; は <<"END"; と同じ扱いで、変数が展開されます。 下記の二つを比べてみて下さい。 my $myValue = "hogehoge"; my $string1 = <<'END'; あいうえお $myValue かきくけこ さしすせそ END print $string1; my $string2 = <<"END"; あいうえお $myValue かきくけこ さしすせそ END print $string2; さらに補足ですが、ご存知かも知れませんが、 プログラム中で、日本語を扱う場合は、 Shift-JIS と Perl の相性が悪いので注意が必要です。 (プログラムがEUCコードなら問題ありません。) 下記は、Shift-JISの場合、文字化けします。 (最後の「ソ」が文字化けします) my $string = <<END; アイウエオ カキクケコ サシスセソ END print $string; <<'END'; を使う方が無難です。 詳しくは下記など参考に。 http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm

gle_gle
質問者

お礼

ご回答ありがとうございます。 うまくいきました。 また補足説明も大変参考になりました。 ありがとうございました。

その他の回答 (1)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

my $string =<<END; あいうえお かきくけこ さしすせそ END ですか ? my $string = "あいうえお かきくけこ さしすせそ"; でもできますよ。

参考URL:
http://allabout.co.jp/internet/cgiperl/closeup/CU20041125A/index2.htm
gle_gle
質問者

お礼

参考URL、ありがとうございました。