2012-02-20 19 views
0

私はPythonを初めて使っています。 は、cgiスクリプトの引数を使用してPythonプログラムを呼び出す方法を知りたがっていました。 また、python progから戻り値を取得します。perl cgiスクリプトからPythonプログラムを呼び出す方法

私は...これを試してみましたが、didntの仕事...

my $bin = "/var/www/pythonprog.py"; 
    my @args = ($name1,$pass1); 
    my $cmd = "$bin ".join(" ", @args); 
    $cmd =~ tr///; 
    system ($cmd); 
+0

perlの質問のようですか? Pythonファイルに適切なハッシュ・バンと適切なアクセス権が設定されていることを確認してください。 – monkut

+0

システムコマンドはリストを取ります。最初の値は実行可能ファイルへのパスで、その後の各値はコマンドライン引数です。あなたがperlを初めて使う人であれば、ここでperldocをチェックしてください:http://perldoc.perl.org/functions/system.html – GoldenNewby

+1

好奇心のために、 '$ cmd =〜tr ///;'は何を期待しましたか? ? – TLP

答えて

0

システムは、list引数を望んでいます。 これを試してみてください:

my $bin = "/var/www/pythonprog.py"; 
my @cmd = ($bin,$name1,$pass1); 
system (@cmd); 

EDIT:あなたは汚染の問題を抱えているように見える、以下の偉大なコメントを参照してください。

+0

ません...エラーがまだあります.... ソフトウェアのエラー: 安全でない$ ENV {PATH} /usr/lib/cgi-bin/new.cgiラインで-Tスイッチで実行しながら、23 ヘルプが必要な場合は、ウェブマスター(webmaster @ localhost)にメールを送って、このエラーメッセージとエラーの日時を伝えてください。 – Jay

+3

@JayanthSilesh '-T'(taint)セキュリティスイッチは、あなたのパスが適切に削除されていないことを知らせます。パスを設定することで解決できます(例: '$ ENV {PATH} =" "'その結果、システムコールのフルパスを使用する必要があります。 'system("/bin/echo foo ")'を実行します。 – TLP

+0

参照:http://docstore.mik.ua/orelly/perl/prog3/ch23_01.htm – AntonioD

関連する問題