如何在perl中创建while循环?

Nig*_*ain -1 perl while-loop

我写了一些代码,将文件从一个文件夹复制并移动到另一个文件夹.这段代码在它自己的工作正常,但当我尝试在代码中添加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
     ); 
    }
Run Code Online (Sandbox Code Playgroud)

编辑:对不起我不认为我很清楚.我希望这段代码循环每X秒.我把它设置为5秒来测试它.

ike*_*ami 8

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

while (EXPR) { ... }
      ^^^^^^
Run Code Online (Sandbox Code Playgroud)

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

while (1) { ... }
for (;;) { ... }
loop { ...}           # use syntax qw( loop );
Run Code Online (Sandbox Code Playgroud)