小编Ava*_*ava的帖子

在perl中对目录进行排序,将数字考虑在内

我想我需要某种Schwartzian变换来实现这个功能,但是我很难搞清楚它,因为perl不是我最强的语言.

我有一个包含内容的目录:

album1.htm
album2.htm
album3.htm
....
album99.htm
album100.htm
Run Code Online (Sandbox Code Playgroud)

我正试图从这个目录中获得具有最高编号的专辑(在本例中为album100.htm).请注意,文件上的时间戳不是确定事物的可靠方法,因为人们在事后添加了旧的"丢失"专辑.

以前的开发人员只是使用下面的代码片段,但是一旦目录中有超过9个专辑,这显然就会崩溃.

opendir(DIR, PATH) || print $!;
@files = readdir(DIR);
foreach $file ( sort(@files) ) {
    if ( $file =~ /album/ ) {
        $last_file = $file;
    }
}
Run Code Online (Sandbox Code Playgroud)

sorting perl readdir

1
推荐指数
1
解决办法
1284
查看次数

标签 统计

perl ×1

readdir ×1

sorting ×1