最速怪談選手権

●perl
$seireki = "2013";     # 変数
#-------------
$123 = "$seireki";     # 代入
$nengou = "$abc"."$123"; # 結合
#-------------
$abc2013 = <<"EOF";
あいうえお
EOF

$abc2014 = <<"EOF";
かきくけこ
EOF
#-------------

●html
<strong>$nengou</strong>
ーーーーーーーーーーーーーーーーーーー
上記、htmlの$nengouに あいうえお と表示したいのですが、
2013 と表示されてしまいます。

解決法として、
$は特殊文字なので、エスケープシーケンス(¥$)をして、
$nengou = "¥$abc"."123"; にしたら、
htmlの中の$nengouは、$abc2013 と表示されてしまいます。

どのようにしたら、
特殊文字入りの文字結合を、変数として扱うようにするのでしょうか?

いろいろ試してみてもどうしても出来ません。
どなたか解決していただけますと、ありがたいです。

A 回答 (2件)

一応


http://perldoc.jp/docs/perl/5.8.8/perlref.pod
という方法はありますが

ハッシュを使って
$abc{'2013'} = <<"EOF";
あいうえお
EOF

<strong>$abc{$seireki}</strong>

みたいにやるとか、他の方法を考えた方がいいと思います

> $123 = "$seireki";     # 代入
エラーになりませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます!

ハッシュを使って
$abc{'2013'} = <<"EOF";
あいうえお
EOF

<strong>$abc{$seireki}</strong>

で、解決いたしました!
------------------

> $123 = "$seireki";     # 代入
エラーになりませんか?

エラーになりました。
$123は質問の例文として載せましたが、まさか使えない変数だとは知りませんでした。
実際に$123をプログラムに載せると500エラーが出て、使えませんでした。
------------------

http://perldoc.jp/docs/perl/5.8.8/perlref.pod
の方法は難しそうなので、これから勉強いたします。
------------------

このたびは、誠にありがとうございました。

お礼日時:2013/09/25 14:25

そもそも文の順序がおかしい.



あと, $123 は特殊な変数だからそれに代入するのはやめた方がいい.

eval.
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
$123は質問の例文として載せましたが、まさか使えない変数だとは知りませんでした。
実際に$123をプログラムに載せると500エラーがでて、使えませんでした。

文の順序もおかしいとのことと、eval.について、これから勉強していきます。

ご指導ありがとうございます。

お礼日時:2013/09/25 14:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!