-1

我编写了一些代码,可以将文件从一个文件夹复制和移动到另一个文件夹。这段代码本身就可以正常工作,但是当我尝试在代码中添加一个while循环时,我不断收到错误。当我测试它时,while循环本身也可以正常工作。我似乎无法弄清楚代码有什么问题。我是使用 Perl 的新手,想知道是否有人能指出我哪里出错了。任何帮助都会很棒。谢谢。:)

    use File::Copy;
    use File::Find;
    my @source = qw (source);
    my $target  = q{target};


    while 
    {sleep (5);
    find(
      sub {
        if (-f) {
          print "$File::Find::name -> $target";
          copy($File::Find::name, $target)
            or die(q{copy failed:} . $!);

        }
      },
      @source
     ); 
    }

编辑:对不起,我不认为我很清楚。我希望这段代码每 X 秒循环一次。我将其设置为 5 秒以进行测试。

4

1 回答 1

8

您缺少指示何时退出循环的表达式。

while (EXPR) { ... }
      ^^^^^^

如果你想要一个无限循环,你可以使用

while (1) { ... }
for (;;) { ... }
loop { ...}           # use syntax qw( loop );
于 2013-01-07T19:06:42.593 回答