这段perl计数器代码哪里出了问题[未解决]

这段perl计数器代码哪里出了问题[未解决]

前日看到了一段代码,关于perl计数器的,自己尝试本机测试了一下,无法显示图片,不知道哪里出了问题,求教!

运行平台XP  IIS

CODE如:

CGI.html

QUOTE:
<HTML>
<HEAD>
<TITLE>测试计数器</TITLE>
<META HTTP-EQUIV="REFRESH" CONTENT="30">

</HEAD>
<BODY TEXT="#000000" LINK="#FFFFDD" VLINK="#FFFFFF">
<H2>测试计数器能否正常工作</H2>
<HR SIZE="1">                                             <!--HR设定水平线,SIZE设定线的厚度-->
<FONT FACE="黑体">您是第</FONT>                           <!--FACE定义字体名称-->
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=6">                        
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=5">
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=4">
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=3">
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=2">
<IMG SRC="http://localhost/CGI_Perl/CGI2.cgi?position=1">
<FONT FACE="黑体">位访问本站点的朋友</FONT>
<HR SIZE="1">
</BODY>
</HTML>

CGI2.cgi

QUOTE:
#标量$counterfile用来表示保存次数的文件的路径
$counterfile="F:/cgi_perl/counter.txt";

#/counter/ip.log用来保存访问的客户机的IP地址
$ipfile="F:/cgi_perl/ip.txt";
$imagefile{"0"}="F:/cgi_perl/0.gif";
$imagefile{"1"}="F:/cgi_perl/1.gif";
$imagefile{"2"}="F:/cgi_perl/2.gif";
$imagefile{"3"}="F:/cgi_perl/3.gif";
$imagefile{"4"}="F:/cgi_perl/4.gif";
$imagefile{"5"}="F:/cgi_perl/5.gif";
$imagefile{"6"}="F:/cgi_perl/6.gif";
$imagefile{"7"}="F:/cgi_perl/7.gif";
$imagefile{"8"}="F:/cgi_perl/8.gif";
$imagefile{"9"}="F:/cgi_perl/9.gif";

#为防止自己对计数器进行测试时它自动加1,可以通过IP的方式来控制
@ip_exclude=("172.16.69.17");
$|=1;

#打开记录次数的文件
open(NUMBER,"$counterfile");
$number=<NUMBER>;
close(NUMBER);

#打开保存IP地址的文件
open(IPINFO,"<$ipfile");
$ipnum=<IPINFO>;
close(IPINFO);
$values=$ENV{'QUERY_STRING'};                                 
@queryresults=split(/&/,$values);
foreach $query(@queryresults)
{
   ($name,$value)=split(/=/,$query);
   $QUERY{$name}=$value;
}
$position="$QUERY{'position'}";

#如果IP地址与@ip_exclude中的相同或最后的两次浏览来至同一个IP地址,
#计数器不加1
if(($ENV{'REMOTE_ADDR'} eq @ip_exclude) || ($ipnum eq $ENV{'REMOTE_ADDR'}))
{
   open(NUMBER,"$counterfile");
   print NUMBER ($number);
   close NUMBER;

   #保存IP地址
   open(IPINFO,">$ipfile");
   print IPINFO($ENV{'REMOTE_ADDR'});
   close IPINFO;                                                
}
else
{
   $number++;
   open(NUMBER,">$counterfile");
   print NUMBER ($number);
   close NUMBER;
   open(IPINFO,">$ipfile");
   print IPINFO ($ENV{'REMOTE_ADDR'});
   close IPINFO;
}
if (($position>0) && ($position<=length($number)))
{
   $pos_index=substr($number,(length($number)-$position),1);
}
else
{
   $pos_index="0";
}
if ($imagefile{$pos_index})
{
   $return=$imagefile{$pos_index};
}
else
{
   $return=$imagefile{"0"};
}

#输出结果
print "Content-type:image/gif\n\n";
open(IMAGE,"<$return");
print <IMAGE>;
close(IMAGE);
exit (0);

#程序结束

大家帮我看看,谢谢!

太长了,
等高手来看
排版还算整齐吧~
求教!
相当的整齐,只是俺一看到html就烦,看不下去
http://www.sun126.com/perl5/perl5-17.htm


QUOTE:
if(($ENV{'REMOTE_ADDR'} eq @ip_exclude) || ($ipnum eq $ENV{'REMOTE_ADDR'}))

$ENV{'REMOTE_ADDR'}  #  ip地址

eq @ip_exclude  #  在这儿代表数组的个数  不是数组的内容
                   #  在你的程序里它等于 1  而不是  172.16.69.17

ip地址 eq  1  没有任何意义的判断

ls 真仔细。