dポイントプレゼントキャンペーン実施中!

$mes<<EOM;
ここにメッセージ
EOM

こうすると、$mesにEOMで囲まれた間の文字が入るんですけど、
処理を入れるにはどうすればいいのでしょうか?

よろしくお願いします。

A 回答 (6件)

evalを使います。


以下の例では、aaaaaと表示されます。
--------------------------
$mes = <<EOM;
for(1..5){
print "a";
}
EOM
eval($mes);
    • good
    • 0
この回答へのお礼

できました!
ありがとうございましたm(_ _)m

お礼日時:2005/11/19 11:21

処理を分けたほうが一番分かりやすいです。



$mes = <<EOM;
メッセージ
EOF
for(1..5){
$mes .= "a";
}
    • good
    • 0
この回答へのお礼

どうしてもスカラー変数に代入したかったんです。

ありがとうございました

お礼日時:2005/11/19 11:24

>処理は何でもありです


ヒアドキュメントの中での関数(処理)呼出として
参考URLが参考になるかもしれません。

参考URL:http://okwave.jp/kotaeru.php3?qid=1303310
    • good
    • 0
この回答へのお礼

参照URL拝見しましたが、よくわかりませんでした。

ありがとうございました。

お礼日時:2005/11/19 11:23

#!Perl



$mes = sub {
for (1..5) {
print "a";
}
};

&$mes;

__END__

D:>val_code2.pl
aaaaa
D:>
    • good
    • 0
この回答へのお礼

すみません、初心者なので
__END__
以降に入れる処理についてはまったくわからないんです。
ありがとうございました。

お礼日時:2005/11/19 11:22

$str1<<EOMS;


固定メッセージの前半
EOMS
$str2<<EOME;
固定メッセージの後半
EOME
$str3 = ここに処理したいプログラムを書く
$mes = $str1 . $str3 . $str2;

この回答への補足

すみません、上の文を全部コピーして
貼り付けましたがエラーになりました。

どのようにすればいいのでしょうか

補足日時:2005/11/18 22:13
    • good
    • 0

何の処理でしょうか?


想定しているのは、どのようなことですか?

この回答への補足

for(1..5){
print "a";
}
処理は何でもありです。上の処理をスカラー変数に代入して任意の位置に
print "$mes";
と書くと、「aaaaa」と表示されるような具合です。
よろしくお願いします。

補足日時:2005/11/18 22:10
    • good
    • 0

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