У меня есть два «разных» файлов с одного типа данных, т.е.Perl Hash Сравнение
KEY_gl Start_gl End_gl
1 114029 17
2 284 1624
3 1803 2942
4 3070 3282
5 3295 4422
KEY_gm Start_gm End_gm
1 115000 17
2 284 1624
3 1803 2942
4 3070 3282
5 3295 4422
Я сохранили эти два файла в «хэш». Столбец «Ключ» - это ключ, а начало и конец - значения для этих двух разных ключей.
Я написал код для сравнения этих двух хэшей и распечатал «похожие» и «не похожие» ключи из файлов.
Кодекс
my %hash_gl =();
my %hash_gm =();
open(my $fgl, "/home/gaurav/GMR/new_gl.txt") or die "Can't open the file";
while (my $line_gl = <$fgl>) {
chomp $line_gl;
my ($key_gl, $start_gl, $end_gl) = split("\t", $line_gl);
$hash_gl{$key_gl} = [ $start_gl, $end_gl ];
}
while (my ($key_gl, $val_gl) = each %hash_gl) {
#print "$key_gl => @{$val_gl}\n";
}
open(my $fgm, "/home/gaurav/GMR/new_gm.txt") or die "Can't open the file";
while (my $line_gm = <$fgm>) {
chomp $line_gm;
my ($key_gm, $start_gm, $end_gm) = split("\t", $line_gm);
$hash_gm{$key_gm} = [ $start_gm, $end_gm ];
}
while (my ($key_gm, $val_gm) = each %hash_gm) {
#print "$key_gm => @{$val_gm}\n";
}
for (sort keys %hash_gl) {
unless (exists $hash_gm{$_}) {
print "$_: not found in second hash\n";
next;
}
if ($hash_gm{$_} == $hash_gl{$_}) {
print "$_: values are equal\n";
} else {
print "$_: values are not equal\n";
}
}
Пожалуйста, скажите ошибки в этом, как я не получаю желаемого output.Also, мне жаль, что я новичок в этом форуме, так что я не в состоянии сделать редактирование правильно.
добавить 'использование strict' и' использование warnings' в сценарий , запустите его и посмотрите, какие ошибки вы получите ... – fugu
@FlyingFrog Sir .. У меня нет ошибок после использования строгого использования и использования предупреждений также. Да, почему я запутался. –
Что ** ** ** ваш желаемый результат? – simbabque