我想在perl脚本中打开(IPaddress或web链接),并将属性username的值传递给此ipaddress或weblink。请将必要的配置行添加到我的以下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 $!;
谢谢,托马斯
答案 0 :(得分:2)
您提供的脚本不起作用。
$p
是undef。一旦在该变量上调用方法,就会出现错误。"\f"
将包含换页,而不是字符序列反斜杠-f。反斜杠引入转义序列,或者如果没有这样的转义序列则被忽略。请使用正斜杠来分隔路径,即使在Windows上也是如此。将$username
直接插入命令字符串。最好使用open
的更多参数;即使$username
包含空格,这也有更好的工作机会:
open my $EX1_PIPE, "|-", "exelocation/file.exe", $username or die ...;
for ($username)
语句没有意义,因为您在一个值上使用循环。直接print {$EX1_PIPE} "$username\n"
。要打开HTTP连接,我建议使用LWP库。您可以使用LWP::UserAgent模块进行复杂操作,也可以使用LWP::Simple轻松GET
文档。您可能希望将用户名作为参数传递给查询字符串;查看URI::Escape或类似的模块以逃避任何特殊字符。
代码最终的外观取决于HTTP服务的接口。
通常,您的工作流程如下所示:
请参阅模块文档以获取示例。