LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1030|回复: 5

怎么第二次查询的时候不行

[复制链接]
发表于 2004-6-8 21:00:56 | 显示全部楼层 |阅读模式
  1.        #!/usr/bin/perl -w
  2.        open(TEL,"Tel_lu_an")|| die "Can't open Tel book $!\n";
  3.        print "输入你需要查询的内容: ";
  4.        chomp($qu=<STDIN>);
  5.        print "-"x70,"\n";
  6.        while($qu ne "q"){
  7.         while(<TEL>){
  8.          if(/$qu/) { print }
  9.         }
  10.        print "-"x50,"\n";
  11.        print "输入你需要查询的内容:";
  12.        chomp($qu=<STDIN>);
  13.        print "-"x70,"\n";
  14.       }
复制代码
大侠帮我看看,为什么第二次查询的时候就不行了
:confused:
发表于 2004-6-9 09:29:49 | 显示全部楼层
当你第一次查完后
已经到文件末尾了
 楼主| 发表于 2004-6-10 20:23:56 | 显示全部楼层
应该怎么样修改程序,或者重置变量 "$_" 呐
发表于 2004-6-11 09:23:52 | 显示全部楼层
我的蠢方法

  1. #!/usr/bin/perl -w
  2.        print "输入你需要查询的内容: ";
  3.        chomp($qu=<STDIN> );
  4.        print "-"x70,"\n";
  5.        while($qu ne "q"){
  6.                 open(TEL,"Tel_lu_an.txt")|| die "Can't open Tel book $!\n";
  7.         while(<TEL> ){
  8.          if(/$qu/) { print }
  9.         }
  10.        print "-"x50,"\n";
  11.            close TEL;
  12.        print "输入你需要查询的内容:";
  13.        chomp($qu=<STDIN> );
  14.        print "-"x70,"\n";
  15.       }
复制代码
 楼主| 发表于 2004-6-11 18:19:29 | 显示全部楼层
谢谢 :thank
发表于 2004-6-11 23:01:00 | 显示全部楼层
第二次输入后,并没有作查询。

建议,如果文件小,把文件读入数组,从数组中搜索
文件大,就要对文件单行操作,在第二次搜索时,注意回到文件头,再搜索过

其实,如果存在多次搜索,写为一个 loop 不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表