http://bbs.csdn.net/topics/390272012 帮完成了这个问题,收藏下
use strict; use File::Find; use Getopt::Std; my @allcsvfile; my @targetfile; if($#ARGV == -1 ) { print "使用格式如下:perl list.pl 路径 关键字 > 保存文件路径\n"; exit; } sub searchfile { my $path = @_[0]; open(MYHANDLE,$path); my @str = <MYHANDLE>; for my $k (@str) { #print $k,"\n"; if($k =~ /.*$ARGV[1].*/) { push @targetfile,$path; } } } sub test{ if($_ =~ /.+\.csv$/) { my $path = $File::Find::name; $path =~ s/\//\\/g; push @allcsvfile,$path; searchfile($path); } } find \&test,"$ARGV[0]"; print "all csv file:\n"; foreach (@allcsvfile) { print $_,"\n"; } print "all target csv file:\n"; foreach (@targetfile) { print $_,"\n"; }