perl - 在 perl 中循环更新值

标签 perl loops ubuntu

我想要做的是 perl 代码将从配置文件中读取并在无限循环中打印。我更改配置文件中的值后,终端上显示的循环中的值也将更新。有人可以帮我解决这个问题吗?

这是我的代码:

#!/usr/bin/perl
use warnings;
use strict;
use IO::Socket::INET;
use CGI;
use Config::Tiny;
use Data::Dumper;
use CGI::Carp qw(fatalsToBrowser);

$| = 1;

# Write some data to the client
my $file = "/home/gentoo/config.conf";

my $Config = Config::Tiny->read($file);

my $status_in_file = $Config->{"offline_online_status"}->{"offline_online_status.offline_online_state"};
my $status_mode = $Config->{"data_silence_mode"}->{"data_silence_mode.data_silence_mode"};


while (1) {
    sleep 5;
    print "$status_in_file\n";
print "$status_mode\n";
}

终端只打印第一个运行值,但不打印更新值。它只会显示这个:
online
disabled
online
disabled
online
disabled

但是当我将配置文件中的值从“在线”更改为“离线”时,终端仍然像上面那样打印。如果我更改配置文件中的值,如何使其更新?

最佳答案

你可以把 Config::Tiny->read()在您的 while(1) { ... } ,做这样的事情:

while (1) {
    my $Config = Config::Tiny->read($file);

    my $status_in_file = $Config->{"offline_online_status"}->{"offline_online_status.offline_online_state"};
    my $status_mode = $Config->{"data_silence_mode"}->{"data_silence_mode.data_silence_mode"};

    print "$status_in_file\n";
    print "$status_mode\n";

    sleep 5;
}

关于perl - 在 perl 中循环更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22470381/

相关文章:

string - perl字符串中的行数

perl - 强制 Time::Piece strftime 使用特定的语言环境

C++执行时间测试

c - 这是一个循环吗?

ubuntu - 安装percona时出错

javascript - 在服务器端运行基于 Mechanize 的 Perl 脚本

perl - 如何在foreach循环中删除数组元素?

r - 如何在 R 中循环列表

asp.net - 项目 'Unable to locate Dependency' 本身

ubuntu 14.04 LTS 5.5 和 7.1 之间的 PHP 版本冲突