use File::Find::Rule; sub fullPathToFile #($StartDirectory,$SearchExpression) { my ($StartDirectory,$SearchExpression)= @_; my(@files,$IsWin1,$IsWin2,$IsWin3,@File_Paths,$Fl,@d,$c); @files = File::Find::Rule->file()->name("$SearchExpression")->in("$StartDirectory"); $IsWin1=substr($StartDirectory,1,1); $IsWin2=substr($StartDirectory,0,2); $IsWin3=substr($StartDirectory,0,1); print "HO HO:$IsWin3\n"; #If $StartDirectory starts with "D:\" or "\\\\" or" \" than it is Win replace / with \ if( ($IsWin1 eq ':')||($IsWin2 eq '\\\\') ||($IsWin3 eq '\\') ) { foreach $Fl (@files) { @d=split(/\//,$Fl); $c=join ("\\",@d); push(@File_Paths,$c); } } else { @File_Paths=@files; } return @File_Paths; } $LocationOfTheScriptsDirectory='/Harness/RootOfAllFiles'; $newdir='/TEST'; $SearchExp='*.abl'; @AllFilePaths=fullPathToFile($LocationOfTheScriptsDirectory,$SearchExp); foreach $file (@AllFilePaths){ @A2 =split(/\//,$file); $fileName=$A2[-1]; system( "cp $file $newdir/$fileName"); }