我需要一些帮助来了解以下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脚本并发送一些信息。

10-06 03:39