我正在尝试让 perl 脚本快速循环(在 Solaris 中)。
我有这样的事情:
#! /bin/perl
while ('true')
{
use strict;
use warnings;
use Time::HiRes;
system("sh", "shell script.sh");
Time::HiRes::usleep(10);
}
我希望 perl 脚本每 10 微秒执行一次 shell 脚本。该脚本不会失败,但无论我在脚本中更改多少 usleep 的精度,该脚本仍然每秒仅执行大约 10 次。我需要它比这更快地循环。
我在这里错过了一些基本的东西吗?我以前从未使用过 perl,但我无法在 Solaris 中获得我想要的睡眠速度,所以我选择了 perl。
TIA
哈士奇。
编辑:
多亏了用户的评论,修改了脚本的想法——我现在正试图在 perl 中完成这一切,但惨遭失败!基本上我正在尝试运行 PS 命令来捕获进程 - 如果该进程存在,我想捕获该行并输出到文本文件。
#! /bin/perl
while ('true')
{
use strict;
use warnings;
use Time::HiRes;
open(PS,"ps -ef | grep <program> |egrep -v 'shl|grep' >> grep_out.txt");
Time::HiRes::usleep(10);
}
这将返回以下错误:
Name "main::PS" used only once: possible typo at ./ps_test_loop.pl line 9.