关于使用 Perl CGI 模块的问题:
假设我有一个名为 foo 的子程序,它接受两个定义如下的参数:
sub foo {
local($a, $b) = @_;
print "a= [$a]";
}
在我的主程序中,我采用一些表单参数并将它们传递给 foo ,如下所示:
use CGI;
$cgi = CGI->new;
foo($cgi->param('field1'), $cgi->param('field2'));
如果表单没有为 field1 传递值(在我的例子中,使用了一个名为 field1 的 SELECT 字段,没有可供选择的值),子 foo 将 $a 设置为在 $cgi->param 中传递的值('field2'),这是一个非空值。
谁能帮我理解为什么会发生这种情况以及为什么 $a 不仅仅是一个空白 ('') 值和 $b = 从 $cgi->param('field2') 发送的值?
我确信有一个合乎逻辑的原因,但我不是 Perl 专业人士,所以我确信这是我还没有学习或理解 Perl 的东西。
提前致谢!