Perl读取文件中的一个片段
#Perl读取文件中的一个片段,该片段由指定的开始字符串所在行,与终止字符串所在行确定
#serachAndPrint.pl
use strict;
use warnings;
print "Input search sub string for Start:"; 
#从标准输入中接收开始搜索字符串
chomp(my $des=<STDIN>);
my @path = split(/,/, $des);
print "Input search sub string for End: ";
#从标准输入中接收终止搜索的字符串
my $termin=<STDIN>;
print "\n";
#chomp去除des中的newline(\n)标志
#chomp $des;
#chomp去除termin中的newline(\n)标志
chomp $termin;
#open(FILE, $filename)打开文件到句柄<FILE>中,注意更换路径
open(FILE,"<","C:\\Documents and Settings\\Administrator\\桌面\\process.txt")||die"cannot open the file: $!\n";
#open(FILE, $filename)打开文件到句柄<FILE>中,注意更换路径
open(OUTFILE,">>","C:\\Documents and Settings\\Administrator\\桌面\\result.txt")||die"cannot open the file: $!\n";
my $firstline ;
foreach $des (@path){
	
		  #每次处理一个字符串后,回到文件的开头
		  seek FILE, 0, 0;
		
		  $firstline = <FILE>;
		
		  #直到读取文件结尾
		  while ( $firstline ){
			 
		        #判断firstline中是否包含目的字符串 des
		        if( (index($firstline, $des) != -1) ){
		  	
		  		        #开始打印包含目的字符串 des 的第一行
		  		        print $firstline;  		
		  		
		  		        #输入到 OUTFILE 文件中
		  		        print OUTFILE $firstline;
		  		
		  		        #打印动作直到遇到文件结束
		  		        while( $firstline ) {
		  			              $firstline = <FILE> ;
		  				            print $firstline;
		  				
		  				            #输入到 OUTFILE 文件中
		  				            print OUTFILE $firstline;
		  				
		  				            #遇到结束符 termin  				
		  				            if( index($firstline, $termin) != -1 ){
		  					              last;
		  				            } 
		  		        }
}#if( (index($firstline, $des) != -1) ){
		        $firstline = <FILE> ;
		  }#while ( $firstline ){
		  print "\n","\n";
		  print OUTFILE "\n","\n";
}#foreach $des (@path){
close FILE;
close OUTFILE;
                    
                
                
            
        
浙公网安备 33010602011771号