Perl:我如何定期将某些文件从一个文件夹移动到另一个文件夹?

时间:2013-06-14 07:57:14

标签: perl

我需要将具有特定文件名的文件从源文件夹移动到其特定目标文件夹,然后按字母顺序逐个移动,例如5分钟。

这是我到目前为止所提出的......

#!/usr/bin/perl
use strict;
use warnings;
my $english = "sourcepath";
my $destination = "destination path";

#for(;;)
#{
opendir(DIR, $english) or die $!;
while (my $file = readdir(DIR))
    {
    next unless (-f "$english/$file");
    next unless ($file =~ m/english/);
    move ("$english/$file", "$destination");
    }
closedir (DIR);
#sleep 10;
#}  
exit 0;

现在的问题是,我无法逐个按字母顺序移动它们......任何指针?感谢

2 个答案:

答案 0 :(得分:2)

如果要按字母顺序处理文件,请对其进行排序。要获取他们的列表,您可以在列表上下文中使用readdir

opendir(DIR, $english) or die $!;
my @files = sort readdir DIR;
for my $file (@files) {
    # ....
}

答案 1 :(得分:2)

取代

while (my $file = readdir(DIR))

您可以按字母顺序获取文件,如下所示:

for my $file (sort readdir(DIR))

竖起大拇指使用strictwarnings。请考虑阅读perlstyle,了解有关如何正确格式化代码的提示。