perl 如何接收url参数

2025-05-05 11:03:48
推荐回答(2个)
回答1:

根据CGI规范,URL里面的参数是GET传递,是在CGI程序的环境变量里面$ENV{'QUERY_STRING'}的,我的程序中相关部分是这样写的:

# 读取资料
if ($ENV{'REQUEST_METHOD'} eq "POST")
{read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});}
else {$buffer = $ENV{'QUERY_STRING'};}
# 分割资料
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
#还原+和%
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
#去处html标记
$value=~ s/\r\n/
/g;
$FORM{$name} = $value if ($name);
}

程序执行后,数组%FORM里面就有url的参数,例如$FORM{'user'}的值就是传递过来的what

回答2:

使用CGI 模块来解决, /done 应该执行一个perl脚本, 脚本里通过如下代码来得到user
my $q = CGI->new;
my $user = $q->param('user');