我有一个cgi脚本,它接受的参数很少,如下所示。
testScript.cgi?arg=1&arg2=SomeThingElse&arg3=otherThing.....
上述脚本效果很好。
现在我有另一个名为mySecondScript.cgi
的perl cgi脚本。它做了它自己的事情,但我想用{1}}调用在这个脚本中计算的参数。我怎么做。任何优雅的解决方案将不胜感激。
答案 0 :(得分:1)
您可能希望使用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中加载和使用的模块可能会更方便。
答案 1 :(得分:-1)
有几种方法可以调用"系统调用"从perl脚本里面。这可能是任何shell操作或甚至是另一个perl脚本。我最喜欢的是qx / [command] /
看看这个迷你示例,看看它是如何工作的
my $result = qx/pwd/;
print "result: $result\n";
pwd是一个shell命令,就像你的情况一样,例如
my $result = qx/mySecondScript $param1 $param2/;
这样您甚至可以将结果从内部脚本传递到外部脚本。其他方式可能是反击或者#34;系统"命令,但qx是我个人的最爱。