下面代码那里错了?
#!/usr/bin/perl
print "Content-type: text/html \n\n";
$a="http://www.luosoft.com/510/virus.300\n";
$buffer = $ENV{"QUERY_STRING"};
@name = &readfile("name.txt");
#chomp @name;
foreach $counter (@name)
{
if ($buffer eq $counter)
##buffer 和counter 明明一样,就是不进入if
{
print $buffer;
print $counter;
}
}
close(FILE1);
问题点数:20、回复次数:5Top
1 楼okeyes(竹子)回复于 2001-12-21 02:43:27 得分 0
把if去掉看看两都是都真的一样。
我想应该不一样,因为你的$buffer还没有解码。Top
2 楼liaokuo(辽阔)回复于 2001-12-21 10:07:02 得分 0
$buffer
如何解码 ?Top
3 楼4red(春子)回复于 2001-12-21 10:13:23 得分 0
也许 buffer 中间有字符\0分隔,虽然打印出来看是一样的,但是实际上不一样
你可以取他们的长度,看是否一样Top
4 楼liaokuo(辽阔)回复于 2001-12-21 10:18:05 得分 0
#!/usr/bin/perl
print "Content-type: text/html \n\n";
$a="http://www.luosoft.com/510/virus.300\n";
$buffer = $ENV{"QUERY_STRING"};
$buffer = =~ s/%([a-fA-F0-9]{2})/pack("C",hex($1))/ge;
@name = &readfile("name.txt");
#chomp @name;
foreach $counter (@name)
{
if ($buffer eq $counter)
##buffer 和counter 明明一样,就是不进入if
{
print $buffer;
print $counter;
}
}
close(FILE1);
能不能帮我修改1下代码?
谢谢,我学perl才1天Top
5 楼superman12(不行)回复于 2001-12-21 21:39:32 得分 20
#!/perl/bin/perl
#以下为解码程序
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;
$FORM{$name} = $value;
}
...Top




