这段查询文件内容找出关键字的代码写的对不对?

111222 2001-07-21 05:59:37
#!/usr/bin/perl


$filename = "data.shtml";

if($ENV{'REQUEST_METHOD'}eq"GET")
{
$buffer=$ENV{'QUERY_STRING'};
}
elsif($ENV{'REQUEST_METHOD'}eq"POST")
{
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}

print"content-type:text/html\n\n";
print"<html><head><title>查找</title></head><body>";

$buffer=~tr/+//;
$buffer=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;




if($buffer eq "")
{
print<<SEARCH;
<form action="search.pl" method=get>
<input type=text>
<input type=submit value="查询">
</form>
SEARCH
exit;
}


open(FILE,">>$filename");
@data = <FILE>;
foreach $tmpline(@data)
{
if($tmpline=~/$buffer/i)
{
print"$tmpline";
}
}
close(FILE);

exit;






#data.shtml的内容如下:

111222<hr>
dajia<hr>
hello<hr>


我的目的是想

search.pl?111222

这样就把data.shtml里面的111222<hr>找出来,并输出
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2001-07-22
  • 打赏
  • 举报
回复
真是感谢你
netken 2001-07-22
  • 打赏
  • 举报
回复
一个小建议,把 open中的 >> 改为 <
若你找的 一定在一行中,那没必要 用array啊,@data可以省略
while(<FILEHANDLE>) {
#.......
}
若你找的不能保证在一行中,那就应该把整个文件读到一个 scalar中
然后在其中 匹配

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧