プロが教える店舗&オフィスのセキュリティ対策術

素人質問で恐縮です。

perlからphpに変数の値を渡す事は可能でしょうか。

同一サーバー内に、/hoge/aaaa.pmと/sample/bbbb.phpがあります。
置き場所はそれぞれで特に関連性はありません。

aaaa.pm内で定義した
my $data = "あいうえお";
のような変数を、
bbbb.php内で受け取って使いたいです。

jQuery.ajaxでphpとjs間で変数の受け渡しが可能なのですが、
そんなイメージでやり取りできたらいいなと思っています。

難しい話であれば諦めます。
perlもphpも素人ですが、簡単なやり取りで済みそうなら取り入れたいです。

不明点などありましたら、ご質問ください。
よろしくお願いいたします。

A 回答 (2件)

No.1 です



> aaaa.pl が必要という認識で良いでしょうか。
> 置き場所(ルートからのパス等)などを添える必要はないでしょうか。

方法はありますが、少々面倒になりがちなので、オススメしかねます

/hoge/aaaa.pm
package aaaa;
our $data = "ほげ";

/sample/bbbb.php
<?php
# /hoge が perl の @INC に入っている
$data = shell_exec("perl -m'aaaa' -e 'print \$aaaa::data'");
# そうでなければ直接指定
$data = shell_exec("perl -I'/hoge' -m'aaaa' -e 'print \$aaaa::data'");

この回答への補足

ありがとうございます。
直接指定する方法で、ご提示いただいたソースを元に実際のディレクトリ名/ファイル名などに合わせてみたのですが、php側で値は取れませんでした。
ファイルへのパスは、ルートからのものをあてています。
ファイルの権限はいったん755にして試しました。(関係ないかもしれませんが)

仮に動いたとしてもソースの意味をしっかり把握できていないので、諦めつつあるのですが、
今回のケースの場合でデバッグするには、どのあたりからアプローチするのが良いでしょうか。
怪しそうなところ、ありますでしょうか。

補足日時:2014/09/16 09:35
    • good
    • 0

aaaa.pm


package aaaa;
our $data = "ほげ";

aaaa.pl
use aaaa;
print "$aaaa::data\n";

bbbb.php
<?php
$data = shell_exec("perl aaaa.pl");

この回答への補足

早速ありがとうございます!
ありがたいです!

2点質問させてください。

aaaa.pm
aaaa.pl
bbbb.php
と3つファイルがありましたが、
現状、aaaa.pl は存在しません。
今回の要望を満たすには、aaaa.pl が必要という認識で良いでしょうか。
aaaa.pl が何をしているのか、よくわかっておりません。

各ファイルの位置(置き場所)は、現状バラバラなのですが、
今回いただいた記述で置き場所(ルートからのパス等)などを添える必要はないでしょうか。
ただ、ファイル名を書いておけば勝手に連携してくれるような仕組みでしょうか。
shell_execを初めて見ているレベルでして、お恥ずかしい限りです。

どうぞよろしくお願いいたします。

補足日時:2014/09/12 08:58
    • good
    • 0

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