This must do the job but there must be a more nice looking way of doing this
Code ___________________________________________________________ compare("c:\\program files","d:\\program files"); #Example call sub compare($$){ my ($p1, $p2) [EMAIL PROTECTED]; print "comparing $p1 with $p2\n"; ################################v Loading direcrory 1 opendir(DIR1, $p1); my @dirList1 = readdir(DIR1); closedir(DIR1); ################################v Loading direcrory 2 opendir(DIR2, $p2); my @dirList2 = readdir(DIR2); closedir(DIR2); my %hash1; my %hash2; foreach my $item (@dirList1){ $hash1{$item} = 1; } foreach my $item (@dirList2){ $hash2{$item} = 1; } ################################ Counting the items that are in Path 1 but not in path 2 my $c=0; foreach my $key (sort keys %hash1){ if ($hash2{$key}!=1){ #print "$key\n"; $c++ } } print "Number of items that are in $p1 but not in $p2 - $c\n"; ################################ Counting the items that are in Path 2 but not in path 1 $c=0; foreach my $key (sort keys %hash2){ if ($hash1{$key}!=1){ #print "$key\n"; $c++; } } print "Number of items that are in $p2 but not in $p1 - $c\n"; print "_______________________\n"; ####################################################### Comparing Sub directories foreach my $key (sort keys %hash1){ if (($hash2{$key}==1)&&(isSubDirectory($p1,$key))&&(isSubDirectory($p2,$key))){ compare($p1 . "\\" . $key, $p2 . "\\" . $key); } } } #################################### Sub to check whether an item is a valid sub directory of the given path sub isSubDirectory($$){ my ($path, $item)[EMAIL PROTECTED]; if ($item =~m/^(\.)+$/){ return 0; } my $myItem = $path. "\\" . $item; if (-d $myItem){ return 1; }else{ return 0; } } LRMK ----- Original Message ----- From: "sudhindra k s" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, June 22, 2004 1:24 PM Subject: Comparing Directories Hi I have two directories with a path as shown below c:\test\result\... and d:\test2\result2\... The directory stucture and files after these are the same. i.e if there is a directory xyz within c:\test\result\, there will be a corresponding directory xyz within d:\test2\result2\ with the file names also being the same. now i want to compare the contents of the directories and output the difference between the two if any. How can i acheive this? Regards Sudhindra -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>