簡體   English   中英

如何從另一個Perl CGI腳本調用Perl CGI腳本

[英]How do I call perl cgi script from another perl cgi script

我有一個cgi腳本,它需要幾個參數,如下所示。

testScript.cgi?arg=1&arg2=SomeThingElse&arg3=otherThing.....

上面的腳本運行良好且完美。

現在,我有另一個名為mySecondScript.cgi perl cgi腳本。 它有自己的作用,但我想使用在此腳本中計算出的參數調用textScript.cgi 我怎么做。 任何優雅的解決方案將不勝感激。

您可能想使用LWP :: Simple來調用第二個程序。 在mySecondScript.cgi中,您將需要以下內容:

my $output = get("http://someserver.somedomain/testScript.cgi?arg=1&arg2=SomeThingElse&arg3=otherThing");

這將返回CGI程序的輸出(即,它生成的HTML頁面)。 如果要對返回的內容進行更多控制,則需要使用LWP :: UserAgent

my $ua = LWP::UserAgent->new;
my $resp = $ua->get("http://someserver.somedomain/testScript.cgi?arg=1&arg2=SomeThingElse&arg3=otherThing");

$resp將是一個HTTP :: Response對象。

或者,如果您的兩個程序都在本地運行,則將testScript.cgi的重要部分重構為一個模塊,可以在mySecondScript.cgi中加載和使用該模塊可能更為方便。

有幾種從perl腳本內部調用“系統調用”的方法。 那可能是任何shell操作,甚至是另一個perl腳本。 我最喜歡的是qx / [command] /

查看這個迷你示例以了解其工作原理

my $result = qx/pwd/;
print "result: $result\n";

pwd是一個shell命令,例如您的情況

my $result = qx/mySecondScript $param1 $param2/;

這樣,您甚至可以將結果從內部腳本傳遞到外部腳本。 其他方式可能是反引號或“ system”命令,但是qx是我個人的最愛。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM