Below is a script I have been working on that verifies if another script has created the MD5 hash file correctly. The below works with
if ( $checkFile = $file ) but not if if ( $checkFile != $file ) and I do not understand why that is. Can someone explain what I am doing wrong? Thanks Tony #!/usr/bin/perl # AUTHOR Tony Heal - [EMAIL PROTECTED] use strict; use warnings; use Digest::MD5 qw(md5); use Sys::Hostname; my $filesize; my $testPrefix = "200708040030"; #verify the MD5 hash use Digest::MD5 my $digest = file_md5($file); if orig md5 == new then good my $host = hostname; open(MD5FILE, "</opt/backup/$testPrefix-$host-md5-checksums.txt") or die "Can not open MD5-checksum file. $!"; my %MD5HASH; while(<MD5FILE>) { if ( /^([0-9A-Za-z]*?)(\s*)([0-9]{12}-(.)*)/ ) { my $key = $1; my $value = $3; $key =~ s/^(\s+)(.*?)(\s+)$/$2/; $value =~ s/^(\s+)(.*?)(\s+)$/$2/; $MD5HASH{$key} = $value; } } close MD5FILE; opendir(BACKUP, "/opt/backup" ) or die "Can not open directory '/opt/epace/backup/'. $!"; my @md5FileList = readdir(BACKUP); closedir BACKUP; while (<@md5FileList>) { my $file = $_; if ( $file =~ /$testPrefix/ ) { my $digest = md5 $file; my $checkFile = $MD5HASH{$digest}; if ( $checkFile = $file ) { print "$file has a good MD5 match\n"; } } } /opt/backup/$testPrefix-$host-md5-checksums.txt: f522c8928669f423c64fd63e7dc58f4a 200708040030-dump 5e7980aebafac3023bce54093978db5f 200708040030-sample-dump c02c0b360a51e7af704648431c367415 200708040030-conf.tar.gz 0598e857f3e2575fb4a9a542429f347b 200708040030-reports.tar.gz 0a91aab9779829118f29e8076ada2264 200708040030-logs.tar.gz a9cf42eff4ab11a200e7891f9a9e95cb 200708040030-scripts.tar.gz 6d060f40e0b3bd3309ec93b23799254f 200708040030-custom.tar.gz acd9d62f1bd034ff4381a76b10f1ac0a 200708040030-client-info.tar.gz 7a321bff85167b425b3b3c3b4f2f728f 200708040030-crons.tar.gz