如何将变量传递给Perl子块?
(这是一个perl CGI页面。)
变量$ yellow未传递到子登录块... 虽然可以做到,但我还是读到了它不应该的地方。如何将变量传递到子块?
例如:
$cgi = new CGI;
$yellow = $cgi->param("yellow");
sub login {
### code .....
$yellow .....
### code....
}
答案 0 :(得分:3)
您需要对登录函数进行编码以获取参数:
sub login {
my($arg1) = @_;
...
}
然后当你调用函数时,只需传递参数:
login($yellow);
答案 1 :(得分:2)
你似乎对Perl非常不熟悉。我建议你快速浏览一下这些文档可以为你提供更好的服务,但是这里也是如此。
没有Perl 'sub'block 。 Perl像大多数其他语言一样有子程序(尽管他们可能想要称它们为函数或者方法)。
Perl子例程接受来自内置数组@_
的参数的数组。您可以直接访问它,但通常最好不要单独将其内容复制到子例程本地的标量变量。
在你的情况下,我的猜测是你应该写一些类似
的东西my $cgi = CGI->new;
my $colour = $cgi->param('yellow');
login($colour);
sub login {
my ($colour) = @_;
# code using passed $colour
}