У меня есть две вкладки разделителями таблицы:сравнить значения различных таблиц PERL
table1
col1 col2 col3 col4
id1 1 1 10
id2 1 15 20
id3 1 30 35
id4 2 10 15
table2
col1 col2 col3
rs1 5 1
rs2 11 1
rs3 34 1
rs4 35 1
я сначала хочу, чтобы проверить, есть ли соответствие между значением в COL3-table2 и col2-table1. Если это TRUE, я хочу проверить, есть ли значения в col2-table2, которые находятся между значениями в col3 & col4 - table1. Если это так, я хочу распечатать соответствующие значения (значения) col1 & col2 в новый столбец таблицы1.
Таким образом, в этом примере, файл конечных результатов должен выглядеть следующим образом:
table output
col1 col2 col3 col4 new_col1
id1 1 1 10 rs1:5
id2 1 15 20
id3 1 30 35 rs3:34, rs4:35
id4 2 10 15
После открытия и загрузка файлов, я начал с хранением значений table2 в массивах массивов.
my @table2;
while (<$table2>){
next if /^\s*#/; #to skip header lines
my @columns = split;
next if $columns[1] =~ /\D/;
push @table2, \@columns;
}
while (<$table1>){
my @columns = split;
...
}
Как я могу проверить, есть ли совпадение между значением в col3-table2 и col2-table1. И как же продолжить проверку, есть ли значения в col2-table2, которые находятся между значениями в col3 & col4 - table1.
пожалуйста, прочитайте perldoc perldsc и perllol – Vorsprung
возможного дубликата [найти значение в диапазоне от 2 значений] (http://stackoverflow.com/questions/27063288/найти-значения-в-диапазон-2 из-значений) – Sobrique