-2
#!/usr/bin/perl
use strict;
use Data::Dumper;
use warnings;
my @mdsum;
open (IN1,"$ARGV[0]") || die "counldn't open";
open (MYFILE, '>>md5sum-problem.txt');
open (IN2, "mdsumfile.txt");
my %knomexl=();
my %knomemdsum =();
my @arrfile ;
my $tempkey ;
my $tempval ;
my @values ;
my $val;
my $i;
my @newarra;
my $testxl ;
my $testmdsum;
while(<IN1>){
next if /barcode/;
@arrfile = split('\t', $_);
$knomexl{$arrfile[0]} = $arrfile[2];
}
while(<IN2>){
chomp $_;
@newarra = split(/ {1,}/, $_);
$tempval = $newarra[0];
$tempkey = $newarra[1];
$tempkey=~ s/\t*$//g;
$tempval=~ s/\s*$//g;
$tempkey=~s/.tar.gz//g;
$knomemdsum{$tempkey} = $tempval;
}
@values = keys %knomexl;
foreach $i(@values){
$testxl = $knomexl{$values[$i]};
print $testxl."\n";
$testmdsum = $knomemdsum{$values[$i]};
print $testmdsum."\n";
if ($testxl ne $testmdsum) {
if ($testxl ne ""){
print MYFILE "Files hasving md5sum issue $i\n";
}
}
}
close (MYFILE);
我有兩個文件一個都具有文件名和Mdsum價值觀,我需要檢查所有文件的的md5sum值不匹配,所以我理解,在一些價值和相應價值不會是他們的情況,我只想要這些情況。任何解決此代碼?請。此代碼非常簡單,但不知道爲什麼它不工作! :(:(參數不是數字的錯誤,而基於鍵比較哈希值
一個更好的建議也只是'的foreach(鍵%knomexl) {$ knomexl {$ _}}'。 – squiguy
@squiguy這是一種文體選擇,對於解決問題並不重要 – Barmar
確實,你解決了這個問題。 – squiguy