这一行在perl中做什么?
my %input=CTRL()->{cgi}->Vars;
我真的不明白这里发生了什么。我最好的假设是Vars
是密钥,我们将这些键值对插入到输入散列中。
它被称为CTRL
。此函数返回对哈希的引用。它访问具有该散列的密钥cgi
的元素。它似乎是CGI的一个实例。它调用该对象的Vars
方法。
许多人希望将整个参数列表作为哈希获取,其中键是CGI参数的名称,值是参数的值。Vars((方法可以做到这一点。在标量上下文中调用,它将参数列表作为绑定的哈希引用返回。更改键会更改基础CGI参数列表中的参数值。在列表上下文中调用,它将参数列表作为普通散列返回。这允许您读取参数列表的内容,但不能更改它
当使用这个时,您必须注意的是多值CGI参数。因为散列不能区分标量和列表上下文,所以多值参数将作为压缩字符串返回,用"分隔\0";(null(字符。您必须拆分此压缩字符串才能获得单个值。这是Steve Brenner很久以前在他的perl版本4的cgi-lib.pl模块中引入的约定,在未来的版本中可能会用数组引用取代。