file_02_0.xml.xml: file_03_0.xml.xml: file_04_0.xml.xml: file_05_0.xml.xml: #### file_02_0.xml.bak.xml: file_03_0.xml.bak.xml: file_04_0.xml.bak.xml: file_05_0.xml.bak.xml: #### #Separating xml and backup files my @xml_files = glob( '*xml' ); #say for @xml_files; my @bak_files = glob( '*bak' ); #say for @bak_files; #Show differences between file_01.xml and file_01.xml.bak, etc... open my $FH, '>', "file_difference_report" or die $!; my @base_file_names = ( @xml_files, @bak_files ); print Dumper \@base_file_names; print "\n\n\n"; for my $file_name ( @base_file_names ) { if ( ! -e "$file_name.xml" ){ print "$file_name.xml: Not present ... not interesting file?\n"; next; } if ( ! -e "$file_name.bak" ){ print "$file_name: no backup, so probably not changed\n"; next; } # If we get here, we have a .bak and a .xml file, so make another # program to compare them for us: my $output = 'diff $file_name.xml $file_name.bak'; print $FH "\n\n===== $file_name changes =====\n"; print $FH $output; print $FH "\n\n"; }