当我有一个包含约5000张图像的文件夹时,我使用以下代码:
my $path= "./foo/images"
my @files = File::Find::Rule->file()->name('*.jpg')->in($path);
我应该在我的阵列中获得5000张图像。
但是,如果使用perl或shell函数(例如tail
和head
或者其他任何方式来获取最后100个图像吗?
答案 0 :(得分:1)
您可以使用array slice。这得到了返回的第5个:
my @files = (File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];
这得到了最后的5:
my @files = (reverse File::Find::Rule->file()->name('*.txt')->in($path))[0 .. 4];
答案 1 :(得分:0)
刚刚意识到...... File :: Find :: Rule完全混合了图像...... 所以在切片之前我们还需要一个排序
所以最后我/我们必须使用以下内容:
为前5:
my @files = (sort File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];
最后5:
my @files = (reverse sort File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];