Этот код компилирует набор с помощью хеш-ключей уникальных заглушек базовых имен в наборе путей.
%stubs = map { $f=basename $_; $f =~ /^([A-Za-z]+[0-9]+)\./ ; $1=>() } @pathlist;
Зачем мне нужны ссылки $f
здесь? Я думал, что все будет в порядке с:
%stubs = map { basename; /^([A-Za-z]+[0-9]+)\./; $1=>() } @pathlist;
Но у меня нет совпадений. Разрешено ли мне изменять $ _ в блоке карты?
Для тех, кто интересуется, что делает код:
Для каждого $ path (@pathlist) он получает базовое имя, совпадает с первой последовательностью букв и цифр, а затем возвращает первое совпадение скобок в качестве ключа для пустого значения списка. Пример:
/some/dir/foo123.adfjijoijb
/some/dir/foo123.oibhobihe
/some/dir/bar789.popjpoj
возвращает
foo123 => ()
bar789 => ()
После чего я использую ключи карты в качестве набора значений для обработки.