当前位置:  开发笔记 > 编程语言 > 正文

*PIPER在Perl中意味着什么?

如何解决《*PIPER在Perl中意味着什么?》经验,为你挑选了2个好方法。

我需要一些帮助来理解以下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> Chris Lutz..:

1)" *PIPER"是typeglob.它是" $PIPER"," @PIPER"和" %PIPER"(我然后是一些)一体化.他们声明*PIPER您拥有的代码段的所有名称.

2)那是一个shell命令.它以a结尾|,表示正在运行该命令,并且它的输出作为文件句柄的输入被输入PIPER.然后程序逐行读取while(),但你已经知道了.

我不太了解curl,但我知道这是一个在互联网上做事的命令行程序.只是随机刺,您的代码似乎正在访问网站的CGI脚本并向其发送一些信息.



2> brian d foy..:

正如其他人所说,*PIPER是一个typeglob,因此您可以动态范围PIPER文件句柄.那是古老的Perl.改为使用词法文件句柄:

sub foo {
    my $http_query = "...";

    open my($piper), $http_query or die "sorry";

    while()
        {
        $rets = $_;
        }

    return $rets;
    }

您不需要执行任何操作即可向服务器发送POST请求.您可以使用LWP在Perl中完全执行此操作.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有