perl CGI 传递参数

这是一个CGI,有好几个.template文件,我想让username和password这两个参数一直不变,为什么这样不可以?......if(definedparam(... 这是一个CGI, 有好几个.template文件,我想让 username和password这两个参数一直不变, 为什么这样不可以?
......

if (defined param("username")&& defined param("password")) {
$u = param("username");
$p = param("password");
}

param("username", $u);
param("password", $p);

print hidden("username");
print hidden("password");......
#!/usr/bin/perl -w

use CGI qw/:all/;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use List::Util qw/min max/;
use HTML::Template;
warningsToBrowser(1);

print page_header();
$debug = 1;$users_dir = "./users";
mkdir $user_dir if !-d $user_dir;

if (defined param('username')&& defined param('password')) {
$username = param('username');
$password = param('password');
}

param('username', $username);
param('password', $password);
print hidden('username');
print hidden('password');

my $page = "login_page";
my $action = param('action');

$page = &{"action_$action"}() if $action && defined &{"action_$action"};

my $template = HTML::Template->new(filename => "$page.template", die_on_bad_params => 0);

$template->param(%template_variables);
print $template->output;
print page_trailer();
exit(0);
展开
 我来答
百度网友c9e795dda
推荐于2016-05-23 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1155万
展开全部
我想你的前面应该有这样写吧
my $q = new CGI; 或者 my $q = new->CGI();

而之後的, 应该是写做
$q->param ( .... ) ;
而不是 param () ...

因为 param() 是 cgi 这个类里面的方法,
所以你不能直接写 param();
这样 perl 会认为你呼叫 main:: 里面的 param() 方法, 那当然是不行了
追问
在上面问题补充里,我把整个主要代码 都写出来了。没有my $q = new CGI;  或者 my $q = new->CGI(); 请问应该怎么办啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式