在perl脚本中打开IP地址或web链接并将值传递给它

在perl脚本中打开IP地址或web链接并将值传递给它,perl,Perl,我想在perl脚本中打开一个(IPaddress或web链接),并将属性username的值传递给这个IPaddress或web链接。请在下面的perl脚本中添加必要的配置行,并进行解释 注意:在下面的脚本中,将执行一个exe文件,我现在不希望执行。请将其替换为打开ipaddress/weblink的配置,然后将属性“username”的值传递给此链接或IP #!/usr/bin/perl use warnings; use strict; my $p; print "Hello Radiat

我想在perl脚本中打开一个(IPaddress或web链接),并将属性username的值传递给这个IPaddress或web链接。请在下面的perl脚本中添加必要的配置行,并进行解释

注意:在下面的脚本中,将执行一个exe文件,我现在不希望执行。请将其替换为打开ipaddress/weblink的配置,然后将属性“username”的值传递给此链接或IP

#!/usr/bin/perl
use warnings;
use strict;
my $p;

print "Hello Radiator is executing the exe file via TKs perl scripting \n";

my $user_name = $p->getUserName;
open my $EX1_PIPE, '|-', "exelocation\file.exe $user_name" 
            or die "location\file.exe $!\n";

print $EX1_PIPE "$_\n" for ($user_name);

close $EX1_PIPE or die $!;

谢谢,托马斯,你给的剧本不起作用

  • $p
    未定义。一旦对该变量调用方法,就会出现错误
  • 字符串
    “\f”
    将包含一个formfeed,而不是字符序列反斜杠-f。反斜杠引入转义序列,如果没有这样的转义序列,反斜杠将被忽略。请使用前斜杠分隔路径,即使在Windows上也是如此
  • 您可以直接在命令字符串中插入
    $username
    。最好使用更多参数来打开;即使
    $username
    中包含空格,也有更好的工作机会:

    open my $EX1_PIPE, "|-", "exelocation/file.exe", $username or die ...;
    
  • 您的($username)语句没有意义,因为您正在对一个值使用循环。直接打印{$EX1\u PIPE}“$username\n”
  • 要打开HTTP连接,我建议使用库。您可以使用该模块进行复杂操作,也可以使用来轻松获取文档。您可能希望将用户名作为查询字符串中的参数传递;查看或类似模块以转义任何特殊字符

    代码最终的外观将取决于HTTP服务的接口

    通常,您的工作流程如下所示:

  • 创建一个用户代理实例
  • 转义用户名,并构造URL
  • 取那个地址
  • 检查有效响应,并返回解码结果

  • 有关示例,请参阅模块文档。

    “请在我下面的perl脚本中添加必要的配置行,并进行解释。”-如果您不要求别人为您工作,您将得到更好的响应。“请”是请求中使用的单词。。。如果你觉得这是一个需求,那是你的问题。。。我从来没有要求你评论/帮助,特别是我的问题,我。。。这个网站是用来提问的,因为我是这个网站的用户。你可能用了“请”这个词,但是当你说“添加代码行”的时候,听起来你还是在要求别人为你做你的工作。这个网站的目标是帮助你解决你的问题,而不是让别人帮你。我的评论不是要攻击你,而是要帮助你从这个网站中获得最大的收益。看看有多少人投了反对票,有多少人投了结束这个问题的票。这些人可能愿意帮助你,但你问问题的方式让他们感到厌烦。