gpt4 book ai didi

perl - 在 perl 中循环更新值

转载 作者:行者123 更新时间:2023-12-04 19:03:27 40 4
gpt4 key购买 nike

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

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com