while
l oop помещает каждую строку вашего файла, в свою очередь, в специальную переменную Perl $_
.
/.../
является оператором сопоставления. По умолчанию он работает на $_
.
/(.*)\t(.*)/
- это регулярное выражение внутри оператора совпадения. Если регулярное выражение соответствует тому, что находится в $_
, то биты совпадающей строки, которые находятся внутри двух пар скобок, сохраняются в специальных переменных Perl $1
и $2
.
У вас есть хэши, называемые %uniq_tar
и %uniq_mir
. Вы получаете доступ к отдельным элементам в ha sh, используя $hashname{key}
. Таким образом, $uniq_tar{$1}
находит значение в %uniq_tar
, связанное с ключом, который хранится в $1
(то есть - часть вашей записи перед первой вкладкой).
$variable++
увеличивает значение число в переменной $. Так что $uniq_tar{$1}++
увеличивает значение, которое мы нашли в предыдущем абзаце.
Итак, как говорит zdim, это частотомер. Вы читаете каждую строку в файле и извлекаете биты данных до и после первой вкладки в строке. Затем вы увеличиваете значения в два хэша, чтобы подсчитать количество вхождений каждой из строк.