for my $data0(@array0){ my ($md50, $filepath0, $filename0)= split (/\s+, $data0); for my $data1(@array1){ my ($md51, $filepath1, $filename1) = split (/\s+/, $data1); if ($md50 !~ $md51 && $filename0 =~ $filename1){ make_path($filepath0); copy("$filepath0$filename0, $filepath1); } else{ #do nothing } } }