有没有类似 nodemon
,监视文件更改并重新启动 perl 脚本?
我的 perl 脚本只是一个 while 循环。
我试图用谷歌搜索它,但结果要么是关于 mod_perl
或无关。
有任何想法吗?
我正在使用 Mac 操作系统
最佳答案
我不知道有像用于 Perl 的 nodemon 这样的工具,除非有一个工具可以在任何程序更改时重新启动它。这是我拼凑的一张。
#!/usr/bin/env perl
use strict;
use warnings;
use v5.10;
use File::Monitor;
use Child qw(child);
sub start_program {
my $program = shift;
return child {
exec $^X, $program, @ARGV;
};
}
sub restart_program {
my($program, $child) = @_;
$child->kill("TERM");
return start_program($program);
}
sub monitor_program {
my $program = shift;
my $monitor = File::Monitor->new;
my $child = start_program($program);
say "PID: ".$child->pid;
$monitor->watch($program, sub {
$child = restart_program($program, $child);
});
while(1) {
sleep 1;
$monitor->scan;
}
}
monitor_program(shift);
这可以通过替换 File::Monitor 来提高效率。与 Hook 到 OS X 文件系统事件服务的东西。
关于macos - 类似于 nodemon 的工具,用于 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584540/