如何在perl中创建while循环?

时间:2013-01-07 19:03:40

标签: 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
     ); 
    }
编辑:对不起我不认为我很清楚。我希望这段代码循环每X秒。我把它设置为5秒来测试它。

1 个答案:

答案 0 :(得分:8)

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

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

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

while (1) { ... }
for (;;) { ... }
loop { ...}           # use syntax qw( loop );