• ベストアンサー

スカラー変数に処理を入れる

$mes<<EOM; ここにメッセージ EOM こうすると、$mesにEOMで囲まれた間の文字が入るんですけど、 処理を入れるにはどうすればいいのでしょうか? よろしくお願いします。

  • Perl
  • 回答数6
  • ありがとう数6

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

evalを使います。 以下の例では、aaaaaと表示されます。 -------------------------- $mes = <<EOM; for(1..5){ print "a"; } EOM eval($mes);

if_else
質問者

お礼

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

その他の回答 (5)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.6

処理を分けたほうが一番分かりやすいです。 $mes = <<EOM; メッセージ EOF for(1..5){ $mes .= "a"; }

if_else
質問者

お礼

どうしてもスカラー変数に代入したかったんです。 ありがとうございました

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

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

参考URL:
http://okwave.jp/kotaeru.php3?qid=1303310
if_else
質問者

お礼

参照URL拝見しましたが、よくわかりませんでした。 ありがとうございました。

  • guci-ok
  • ベストアンサー率33% (49/146)
回答No.4

#!Perl $mes = sub { for (1..5) { print "a"; } }; &$mes; __END__ D:>val_code2.pl aaaaa D:>

if_else
質問者

お礼

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

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

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

if_else
質問者

補足

すみません、上の文を全部コピーして 貼り付けましたがエラーになりました。 どのようにすればいいのでしょうか

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

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

if_else
質問者

補足

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

関連するQ&A

  • 処理待ち

    送信ボタンを押してから処理が完了するまでの間に「処理中」というようなメッセージを 表示させたいと考え、sub waitでいろいろ試してみましたが、方法がわかりませんでした。 perlだけの処理で、このようなことは可能なのでしょうか? お手数ですが宜しくお願いいたします。 -------------------------------------- &wait("処理中"); &edit &message("処理完了"); sub wait { } sub edit { #ここで5秒以上かかる処理をさせています。 } sub message { print <<EOM; Content-type: text/html <html> <head> <title>message</title> </head> <body> $_[0] </body> </html> EOM exit; }

    • ベストアンサー
    • Perl
  • PHPの文字列変数をJavaScriptのalertで表示させたい

    <?php  $mes = 123; print<<<EOF  <script Language="JavaScript">  <!--   JavaScript:alert( $mes );  //-->  </script> EOF; ?> ↑のコードを実行すると123というメッセージボックスが表示されます。 <?php  $mes = "aaa"; print<<<EOF  <script Language="JavaScript">  <!--   JavaScript:alert( $mes );  //-->  </script> EOF; ?> しかしこのように数値変数でははく文字列変数を渡すと表示できません。 JavaScriptにPHPの文字列変数を受け渡すことはできるのでしょうか?

    • ベストアンサー
    • PHP
  • 動的に配列を確保した時の操作の仕方

    ---------------- ヘッダ ------------------- typdef struct _TAG { char *mes; // メッセージの先頭アドレス確保 } *pTAG; pTAG ptag; // ポインタ上に長さが違う文字列を確保 char *local_mes[] = { "テスト文字列だよ", "文字列は長さが違うよ", "教えて!goo", }; ------------------------------------------- ---------------- ソース ------------------- void main( void ) { // 先頭アドレスを確保する。 ptag->mes = *local_mes; 【ptag->mesを使い、文字列描画がしたい!】 } ------------------------------------------- ソースコードを長く書いてしまいそうなので、要点だけ絞りました。 【やりたい事】としては、 ptag->mes = *local_mes で、 ptag->mesから文字列を全て描画したいのですが、上手く行きません。 調べたところ、ptag->mesが一次元配列化してるらしく、 "テスト文字列だよ" <-- 16バイト + 1バイト 17バイトptag->mesを進めると、次の行まで行き着きますが、 sizeof関数も上手く扱えません。 sizeof( ptag->mes ) = 4 <? 是非とも解決策をお願いします。 開発環境は、 borland C++ compiler 5.5です。

  • UWSCにおける変数の扱い方

    UWSCでの質問です。 変数を変数で指定することは可能でしょうか? joken = 1 ka_mes = "OK" hi_mes = "NG" ifb joken = 1 then hensu = ka else hensu = hi msgbox(hensu + "_mes") // ←この結果として「OK」と表示させたい 簡略化していますので、この例では、素直にif文のthenとelseにmsgbox命令を書けばいいのですが、実際のプログラムはhensuを何度も使うためそうもいきません。 よろしくお願いします。

  • 処理中ですよ!のメッセージ

    いつも、お世話になります。 Access2000でVBAを書きました。 ところが処理がものすごく時間が掛かります。 これ以上、私のスキルではどうすることも出来ません。 そこで、画面上に「処理中です。ごめんなさい」などの メッセージを出したいのです。 これはメッセージボックスではなく、例えばクエリーAが実行されいてる間はそのメッセージがず~と表示されていて終わったら勝手にきえるような動きがいいなぁと思います。 よろしくお願いします。

  • 変数の中にfunctionからの戻り値を入れるには?

    以下のようにファイルが分かれていて、外部のprint文をメインのPHPの変数に入れたいと考えているのですが、どうすれば実現できるでしょうか。 【ad.php】 function bunner(){ ~条件分岐の処理など~ switch($number){ case 1: print "~"; break; case 2: print "~"; break; } } 【main.php】 include_once("ad.php"); $temp= <<<EOM <div ~> ここにbunner()の結果を入れたい </div> EOM; ad.phpは他でも使用しているので、修正できません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • *.jsをHTMLで読み込んでHTMLに書かれたスクリプトを外部スクリプトで処理したいんですが。。

    JAVAスクリプトを外部ファイルに下記の様に書き出して外部ファイルをHTMLファイルに読み込んで、 読み込んだHTMLに書かれたスクリプトを外部ファイルで処理したいんですが 上手くいきません。読み込みの方法とか記述方法について教えてもらいたいのですが、よろしくお願いします。 [load.js] var win1; function openwin(){ win1 =window.top.frames[3]; } function loading_mes(message){ if(win1.closed==true){ openwin(); } win1.focus(); win1.document.open("text/html"); win1.document.write("<HTML><BODY bgcolor=\"#000000\" text=\"#ffffff\">"); win1.document.write("<p style='margin-top: -10'>"); win1.document.write("<H3>" + message + "</H3>"); win1.document.write("</p>"); win1.document.write("</BODY></HTML>"); win1.document.close(); } openwin(); loading_mes("load stert"); [HTMLでの処理したい事] <BODY onLoad="setTimeout('win1.close()',1000)"></BODY> <script type="text/javascript"> loading_mes("■■■■■■"); </script> <script type="text/javascript"> loading_mes("Loading Done"); </script> です。よろしくお願いします。どん詰まり状態で手も足も出ません(^^;

  • ブラウザの種類によって、処理を分岐。

    ブラウザの種類によって、処理を分岐。 以下のような感じで、ブラウザの種類(SAFARI、OPERA、FIREFOX、EXPLORERなど)によって、 perlの処理を分けたいのですが、やり方がわかりません。 (もちろん、以下は、正常に動作しません。) //↓=========================================== <script language="JavaScript"> <!-- window.onload = function(){ str = navigator.appName.toUpperCase(); if (str.indexOf("SAFARI") >= 0) browser_Name = "SAFARI"; if (str.indexOf("NETSCAPE") >= 0) browser_Name = "NETSCAPE"; if (str.indexOf("OPERA") >= 0) browser_Name = "OPERA"; if (str.indexOf("FIREFOX") >= 0) browser_Name = "FIREFOX"; if (str.indexOf("EXPLORER") >= 0) browser_Name = "EXPLORER"; if (str.indexOf("MICROSOFT") >= 0) browser_Name = "EXPLORER"; if (browser_Name == "SAFARI"){ EOM $a="1"; print <<EOM; } if (browser_Name == "NETSCAPE"){ EOM $a="10"; print <<EOM; }  : } // --> </script> //↑=========================================== どうかご教授願います。よろしくお願いします。

    • ベストアンサー
    • Perl
  • スカラー変数に文字をランダムに代入

    スカラー変数に英数文字を6文字ランダムに 代入したいのですが、どうすればいいですか? よろしくお願いします。

  • 変数に禁止された文字が含まれている場合の処理について

    掲示板を作っています。 コメントの登録時に、禁止された文字が含まれていた場合に、投稿をとめる方法について教えてください。 例えば、コメント(変数名$com)に■、▲、●といった文字が含まれている場合に処理を止める方法です。 (イメージ) 変数$comに、"■" or "▲" or "●"を 含む場合 →  print "禁止文字が含まれています"; exit; 含まない場合 → // 投稿処理 $sql = "update BBS set ・・・・ ・・・・ ・・・・ 以上、宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう