CGI 错误 Can't use an array as a reference
CGI error Can't use an array as a reference
我的配置是 Debian Stretch
我使用命令
验证我的 Perl 代码
line perl -wcT admin.cgi
我在这一行的代码中有错误:
print &select("$id-2",\@values,\@values,@{$FORMAT{$name}}->[1]),"<br /> \n";
错误是:
Can't use an array as a reference
我也试过
this web editor
看来错误是:
@{$FORMAT{$name}}->[1]
如你所说,问题出在这里:
@{$FORMAT{$name}}->[1]
看来 $FORMAT{$name}
应该包含一个数组引用。并且您想从引用的数组中获取第二个元素。有(至少!)两种方法可以做到这一点。
您可以取消对数组引用的引用以获取数组,然后使用标准数组索引括号:
@{$FORMAT{$name}}[1]
或者您可以使用引用箭头和数组索引括号:
$FORMAT{$name}->[1]
你不能做的(如你所见)是同时使用两种语法:-)
更新: 正如 Borodin 在评论中指出的那样,我的第一个解决方案是不正确的。从数组访问单个元素时,应将 @
更改为 $
。所以它实际上应该是:
${$FORMAT{$name}}[1]
而在我的第二个解决方案中,箭头实际上是可选的(两组括号之间的取消引用箭头始终是),因此您可以这样写:
$FORMAT{$name}[1]
我的名为 webadmin.cgi 的 cgi 现在在 ActivePerl 上 Xampp 在我的电脑上 windows 7.
这个在本地测试中有效(运行 完美)但出现相同的错误:
print &select("$id-2",\@values,\@values,@{$FORMAT{$name}}->[1]),"<br /> \n";
如果最终在 OS debian stretch(我的专用服务器)上安装相同的文件:
如果我用同样的语法错误进行测试,它就不起作用(错误 500)
如果我用两次解决方案替换,程序在线 运行 但弹出我。
感谢您的耐心等待,
不
我的配置是 Debian Stretch
我使用命令
验证我的 Perl 代码line perl -wcT admin.cgi
我在这一行的代码中有错误:
print &select("$id-2",\@values,\@values,@{$FORMAT{$name}}->[1]),"<br /> \n";
错误是:
Can't use an array as a reference
我也试过 this web editor
看来错误是:
@{$FORMAT{$name}}->[1]
如你所说,问题出在这里:
@{$FORMAT{$name}}->[1]
看来 $FORMAT{$name}
应该包含一个数组引用。并且您想从引用的数组中获取第二个元素。有(至少!)两种方法可以做到这一点。
您可以取消对数组引用的引用以获取数组,然后使用标准数组索引括号:
@{$FORMAT{$name}}[1]
或者您可以使用引用箭头和数组索引括号:
$FORMAT{$name}->[1]
你不能做的(如你所见)是同时使用两种语法:-)
更新: 正如 Borodin 在评论中指出的那样,我的第一个解决方案是不正确的。从数组访问单个元素时,应将 @
更改为 $
。所以它实际上应该是:
${$FORMAT{$name}}[1]
而在我的第二个解决方案中,箭头实际上是可选的(两组括号之间的取消引用箭头始终是),因此您可以这样写:
$FORMAT{$name}[1]
我的名为 webadmin.cgi 的 cgi 现在在 ActivePerl 上 Xampp 在我的电脑上 windows 7.
这个在本地测试中有效(运行 完美)但出现相同的错误:
print &select("$id-2",\@values,\@values,@{$FORMAT{$name}}->[1]),"<br /> \n";
如果最终在 OS debian stretch(我的专用服务器)上安装相同的文件:
如果我用同样的语法错误进行测试,它就不起作用(错误 500)
如果我用两次解决方案替换,程序在线 运行 但弹出我。
感谢您的耐心等待,
不