我需要一些帮助来理解以下Perl代码段.我有以下两个问题.
1.当地*PIPER
意味着什么?即使我在local *
语法对我来说之前已经完成了一些Perl编程.它是指针吗?
2.目的是什么?
curl http://www.somesite.net/cgi-bin/updateuser.cgi? -d "userid=$userid&password=$password\" -s |"; ?
谢谢 :)
local *PIPER; $http_query = "curl http://www.somesite.net/cgi-bin/updateuser.cgi? -d \"userid=$userid&password=$password\" -s |"; open(PIPER,$http_query) or die "sorry"; while() { $rets = $_; } close(PIPER); return $rets;
Chris Lutz.. 10
1)" *PIPER
"是typeglob.它是" $PIPER
"," @PIPER
"和" %PIPER
"(我然后是一些)一体化.他们声明*PIPER
您拥有的代码段的所有名称.
2)那是一个shell命令.它以a结尾|
,表示正在运行该命令,并且它的输出作为文件句柄的输入被输入PIPER
.然后程序逐行读取while(
,但你已经知道了.
我不太了解curl
,但我知道这是一个在互联网上做事的命令行程序.只是随机刺,您的代码似乎正在访问网站的CGI脚本并向其发送一些信息.
1)" *PIPER
"是typeglob.它是" $PIPER
"," @PIPER
"和" %PIPER
"(我然后是一些)一体化.他们声明*PIPER
您拥有的代码段的所有名称.
2)那是一个shell命令.它以a结尾|
,表示正在运行该命令,并且它的输出作为文件句柄的输入被输入PIPER
.然后程序逐行读取while(
,但你已经知道了.
我不太了解curl
,但我知道这是一个在互联网上做事的命令行程序.只是随机刺,您的代码似乎正在访问网站的CGI脚本并向其发送一些信息.
正如其他人所说,*PIPER
是一个typeglob,因此您可以动态范围PIPER文件句柄.那是古老的Perl.改为使用词法文件句柄:
sub foo { my $http_query = "..."; open my($piper), $http_query or die "sorry"; while() { $rets = $_; } return $rets; }
您不需要执行任何操作即可向服务器发送POST请求.您可以使用LWP在Perl中完全执行此操作.