文件的排序陣列我有這個陣列的文件看起來像這樣:映射和在Perl
my @html_pages_files = ("html.17", "html.9", "html.0", "html.10");
我會把文件的擴展名的分類部分之後。基本上文件名將是/html.\d/。事情是我想要使用映射和排序功能對它進行排序:
map { $_->[1] }
sort { $a->[0] <=> $b->[0] }
map { /html\.(.*)/; [$1, $_] }
@html_pages_files;
print "@html_pages_files\n";
但是,輸出仍然與原始數組相同。我一直按照@Chas的步驟。歐文斯在這裏回答:Using Perl, how can I sort an array using the value of a number inside each array element?。請注意,我對Perl很新,所以我沒有得到所有的細節。
有沒有人種下錯誤的地方? 謝謝!!!
其一,你不檢查,看看是否能映射塊內的正則表達式匹配成功。現在,如果由於某種原因不匹配,您將永遠不會知道它,'$ 1'將具有前一個正則表達式匹配的值。如果你期望它會一直通過的話,我會把它改成'/.../或死掉。 – 2013-03-07 16:58:43