作者abliou (把青春freeze)
看板Perl
标题Re: [问题] 两个档案比对问题
时间Wed Feb 9 17:22:27 2011
※ 引述《piglon (TEST123)》之铭言:
: 想请教一个问题
: 我想比对两个档案的内容
: 利用两个回圈去读两个档案
: 边读边丢到串列
: 然後做比对
: 可是却只做一次比对就结束了
: 这让我困扰很久
: 感谢回答的先进谢谢
: 我的程式码如下
我来帮你排吧 orz...
: use strict;
: open(FileHandle, "<1missdo.txt") or die "can't open 1missdo.txt\n";
: open(FileHandle1, "<9901.txt") or die "can't open 9901.txt\n";
: open(output_1, ">0127output".".txt") or die "can't open 0127output\n";
: while (my $line = <FileHandle>){
: my @items = split (/ /,$line);
: while (my $line1 = <FileHandle1>){
: my @items1 = split (/ /,$line1);
: if($items[2] =~ /$items1[3]/g){
: print output_1 "$items[0] $items[1] $items[2] $items[3]\n";
: print output_1 "$items1[7] $items1[22] $items1[3] $items1[17]\n";
: }#end of if($items[2] =~ /$items1[3]/g){
: }#end of while (my $line = <FileHandle>){
#问题就在这 因为你读到档尾了 所以while怎麽读都是EOF
#解决方案 第一个就是用seek函数 不然就是把档关掉重新开一次
#效能有没有差我就不知道了 应该会有吧
seek(FileHandle,0,0); # 加在这
: }#end of while (my $line1 = <FileHandle1>){
: close(FileHandle);
: close(FileHandle1);
: close(output_1);
--
如果青春注定要向前跑
他妈的...那我的出口在那?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.239.44
1F:推 piglon:太感谢了!!我终於知道症结点了 感谢 等我写好再上来回文 02/10 08:40