我需要一些帮助来了解以下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(<PIPER>)
{
$rets = $_;
}
close(PIPER);
return $rets;
最佳答案
1)“ *PIPER
”是一个类型标记。它是“ $PIPER
”,“ @PIPER
”和“ %PIPER
”(然后是一些)全部合而为一的。他们声明了您所拥有的代码片段中所有本地的*PIPER
名称。
2)这是一个shell命令。它以|
结尾,表示该命令正在运行,并且其输出通过管道传递为文件句柄PIPER
的输入。程序然后使用while(<PIPER>)
逐行读取,但是您已经知道这一点。
我对curl
不太了解,但是我知道这是一个用于在Internet上执行操作的命令行程序。只是随机插入,您的代码似乎正在访问网站的CGI脚本并发送一些信息。