我想要做的是 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/