sub ProcessFile { #以数组方式获取参数,这是有两个参数,输入和输出文件 my ($in_file,$out_file) = @_; #定义变量 my %param; my @lines; my @data; open( FILE, $in_file );#打开文件读 #将整个文件按行载入到数组lines,类似于php的file()函数. @lines = <FILE>; chop( @lines ); #这里$i从1开始,因为我要去文件头. for( my $i=1; $i< @lines; $i++ ){ next if ($lines[$i]=~/^(s*#)/);#跳过注释行.... @data=split(/s+/,$lines[$i]); $param{$data[8]}=$param{$data[8]}+1; } close (FILE); #打开文件写,不存在则创建,>>表示追加,>表示清空再写 open(FILE,">>$out_file"); foreach my $key ( keys %param ) { ##向文件写内容,很简单吧。 print FILE $key.",".$param{$key}."n"; } close(FILE); return %param; } &ProcessFile("input.txt","output.txt");#调用函数.