我有这样的文件数组,如下所示:
my @html_pages_files = ("html.17", "html.9", "html.0", "html.10");
Run Code Online (Sandbox Code Playgroud)
我将把文件的扩展名放在排序部分之后.基本上文件名是/html.\d/.问题是我正在尝试使用map和sort函数对其进行排序:
map { $_->[1] }
sort { $a->[0] <=> $b->[0] }
map { /html\.(.*)/; [$1, $_] }
@html_pages_files;
print "@html_pages_files\n";
Run Code Online (Sandbox Code Playgroud)
但是输出保持与原始数组相同.我一步一步跟着@Chas.Owens在这里回答:使用Perl,如何使用每个数组元素中的数字值对数组进行排序?.请注意,我对perl很新,所以我没有得到所有细节.
有人在哪里播种错误吗?谢谢!!!
你永远不会保存排序结果!
@html_pages_files =
map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { /html\.(.*)/; [$_, $1] }
@html_pages_files;
Run Code Online (Sandbox Code Playgroud)
(为了保持一致性,我总是将整个字符串放在数组的第一个元素中.)