macos - 类似于 nodemon 的工具,用于 perl

标签 macos perl

有没有类似 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/

相关文章:

perl - 管道的 Ctrl+Z 字符和 EOF 问题

perl - 如何在 Perl 中检查有效的日期格式?

python - 找不到符号 : _BIO_new_CMS

macos - 如何使用 CGImageMetadataRef?

macos - iPhone 模拟器/Mac OS 10.8.4 上的简单应用程序崩溃

perl - 动态函数注入(inject)到 Text::Template 命名空间

php - 在 mysql 中组织更改字段值

linux - xls2csv + 禁用 XLS 中的空格

macos - 哪种硬件配置用于构建跨平台 FireMonkey 应用程序?

macos - 如何在 Mac 上的 SourceTree for Hg 中提交文件的一部分