在perl中更新循环中的值
我想做的是,perl代码将从配置文件中读取并以无限循环打印。更改配置文件中的值后,终端上显示的循环中的值也将更新。有人能帮我解决这个问题吗 这是我的密码:在perl中更新循环中的值,perl,loops,ubuntu,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
#!/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
但当我将配置文件中的值从“online”更改为“offline”时,终端仍会像上面那样打印。如果我更改了配置文件中的值,如何使其更新?您可以将该
Config::Tiny->read()
放在中,而(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;
}
可以我在那里看到了我的问题。我没有将读取过程放入循环中。谢谢你,伙计!你今天救了我一天。:)@利迪厄姆