if(-f $path_to_file){ #do something } #### use strict; use File::Find; use File::Copy; use Cwd; my $Src = $ARGV[0]; my $Trg = $ARGV[1]; my $path = getcwd(); chdir($Src); find (\&wanted, '.'); sub wanted { if(-f $path.'/'.$Trg.'/'.$File::Find::dir.'/'.$_){ print "File in $Trg: $_\n"; }else{ mkdir($path.'/'.$Trg.'/'.$File::Find::dir) if(! -d $path.'/'.$Trg.'/'.$File::Find::dir); copy($_, $path.'/'.$Trg.'/'.$File::Find::dir.'/'.$_) if(! -d $File::Find::name); } }