此代码通过一组路径中唯一基名存根的哈希键编译一组。
%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 => ()
之后,我使用地图的键作为值集进行处理。