我试图从perl调用php脚本。谷歌搜索后发现我可以使用反引号运算符。
但是当我尝试
时my $phpOutput = `https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4`;
它不起作用。我在浏览器中尝试使用的网址相同。
我需要做些什么改变才能使它在perl脚本中工作。
我正在使用这个perl包。
use LWP::Simple;
答案 0 :(得分:6)
反引号的内容不是shell命令,它们是一个URL。由于您已经在使用throw new Error(err)
,因此您可以通过调用LWP::Simple
看起来像这样,虽然这个值可能无法代表您的预期,因为您需要将get
和<mykey>
替换为真实值。您没有 使用URI
模块构建URL,但这样可以更简单地更改单个查询参数并避免您必须处理URI转义字符串< / p>
<mobile>
use strict;
use warnings 'all';
use feature 'say';
use URI;
use LWP::Simple 'get';
my $url = URI->new('https://control.msg91.com/api/sendhttp.php');
$url->query_form(
authkey => '<mykey>',
mobiles => '<mobile>',
message => 'Thank you for placing order at WokoShop. Order id: 1434 Invoice Value: 1445.04',
sender => 'WOKOSP',
route => 4,
);
say get $url;
答案 1 :(得分:-3)
要在UNIX中调用特定的URL /页面,您可以使用 curl ,因此您不必按照反引号键入URL,而是这样做:< / p>
my $phpOutput = `curl 'https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4'`;
你也可以这样做:
my $phpOutput = qx|curl 'https://control.msg91.com/api/sendhttp.php?authkey=<mykey>&mobiles=<mobile>&message=Thank%20you%20for%20placing%20order%20at%20WokoShop.%20Order%20id%3A%201434%20Invoice%20Value%3A%201445.04&sender=WOKOSP&route=4'|;