代码出错了,请大家帮我改一改呀~~

代码出错了,请大家帮我改一改呀~~

代码出错了,请大家帮我改一改呀~~
[url=http://www.iebsoft.com/downloads/leaveword.rar]下载代码文件[/url]
[url=http://www.iebsoft.com/lw]预览效果[/url]
[code]##################.
[code]###############################################
# delWord(ID) #
# 删除留言记录 #
###############################################
sub delWord
{
my($LOCK_EX, $r, $t, @Word, @val);

$LOCK_EX = 2;

push @Word, $_[0];

open(LW, "+<$leaveWord");

#上锁,防止多个用户同时操作文件
flock(LW, $LOCK_EX);

# 对数据进行排列
while(!eof(LW) && defined($r=<LW>)){
push @Word, $r;
}

seek(LW, 0,0);
foreach $r (@Word){
$t = $r;
@val = split(/\t/, $t);

if($val[0] ne $_[0]){
print LW $r;
}
}

close(LW);
}
[/code]
这一段代码,删除记录时,会发生错误。
我已经把代码改成这样了,不知道还会不会有错!
[quote]###############################################
# delWord(ID) #
# 删除留言记录 #
###############################################
sub delWord
{
my($LOCK_EX, $r, @Word, @id, $tmp);

$LOCK_EX = 2;

open(LW, "+<$leaveWord");

flock(LW, LOCK_EX);

# 对数据进行排列
while(!eof(LW) && defined($r=<LW>)){
@id = ($r =~ m/#(.+?)\t/g);
$tmp = join //, @id;

if($tmp ne $_[0]){
push @Word, $r;
}
}

open(CL, ">$leaveWord");
print CL "";
close(CL);


seek LW, 0, 0;
foreach $r (@Word){
print LW $r;
}
close(LW);
}[/quote]