将文件从列表/数组移动到Perl中的目标文件夹

时间:2013-09-18 18:36:20

标签: perl

使用 Perl 代码

use File::Find::Rule;

my @files = File::Find::Rule->file()
                            ->mtime('<=' . (time() - 3600))
                            ->in("/source/directory/path");

我的源目录中的文件列表至少在一小时内未被修改。

将此类文件移动到目标文件夹的最简单方法是什么? 错误处理重要。

我是否必须使用循环逐个移动这些文件,还是有一些优雅而安全的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

工作解决方案:

use File::Find::Rule;
use File::Copy;

my @files = File::Find::Rule
              ->file()
              ->mtime('<=' . (time() - 3600))
              ->exec( sub { 
                            my $r = move($_[2], "/destination/directory/path");
                            print STDERR "$_[2]\t$!\n" if !$r;
                            $r
                          }
                    )
              ->in("/source/directory/path");